2017-04-21 1 views
-1

Ich lerne immer noch PHP/PDO. Ich mache ein Update für eine Tabelle. Ich bin in der Lage eine bestimmte Zeile aus einer Display-Seite,Ungültige Parameternummer: Parameter wurde nicht definiert nicht übereinstimmend

$id = $_GET['id']; 

$sql = "SELECT * FROM aeroplane WHERE aeroplaneID=:aeroplaneID"; 
$query = $pdo->prepare($sql); 
$query->execute(array(':aeroplaneID' => $id)); 

while($row = $query->fetch()) 
{ 
$aeroplaneName = $row['aeroplaneName']; 
$aeroplaneTopSpeed = $row['aeroplaneTopSpeed']; 
$aeroplaneRange = $row['aeroplaneRange']; 
$planeMakerID = $row['planeMakerID']; 
} 

zu holen, aber beim Versuch, die Zeile zu aktualisieren, erhalte ich:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined

Jetzt habe ich die Anzahl der Parameter überprüft Ich bin vorbei und ihre Namen für einen Tippfehler, oder sind meine Bindungswerte falsch? Das ist mein Update-Code:

$sql = "UPDATE aeroplane SET aeroplaneName=:aeroplaneName, aeroplaneTopSpeed=:aeroplaneTopSpeed, aeroplaneRange=:aeroplaneRange, planeMakerID=:planeMakerID WHERE aeroplaneID=:aeroplaneID"; 

$query = $pdo->prepare($sql); 

$query->bindparam(':aeroplaneID', $id); 
$query->bindparam(':aeroplaneName', $aeroplaneName); 
$query->bindparam(':aeroplaneTopSpeed', $aeroplaneTopSpeed); 
$query->bindparam(':aeroplaneRange', $aeroplaneRange); 
$query->bindparam(':planeMakerID', $planeMakerid); 
$query->execute(); 

und dies ist der Code für das Senden des Update:

<td><input type="hidden" name="id" value=<?php echo $_GET['id'];?></td> 
<td><input type="submit" name="update" value="Update"></td> 

sondern updaten, dessen Löschen der Zeile, und mein Löschcode ist auf einer ganz anderen Seite .

+1

':' wird kommen, nachdem '=' an ': = aeroplaneTopSpeed' – Saty

+0

Dank für den Hinweis, aber jetzt, wenn Sie ein Update, das Löschen der Zeile, ich habe nichts anderes in den obigen Zeilen geändert, außer für die Änderung der = – user2371684

+0

Haben Sie irgendwelche löschen Code dazwischen schreiben ??? – Saty

Antwort

0

ist Ihr Tippfehler:

[...] aeroplaneTopSpeed:=aeroplaneTopSpeed [...] 

Änderung es =:

+0

yeah, @saty wies darauf hin, aber jetzt, wenn ich aktualisiere, löscht es die Zeile, auch wenn der Lösch-Code auf einer anderen Seite – user2371684

+0

hm ist, kann ich nur vermuten, dass Sie Ihre überprüfen müssen edit.php, wenn es entweder Ihren Löschcode aufruft oder Ihre delete.php enthält – core36

+0

yeah, gehen Sie jetzt durch – user2371684

Verwandte Themen