Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无效的参数编号:未定义参数不匹配_Php_Mysql_Pdo - Fatal编程技术网

Php 无效的参数编号:未定义参数不匹配

Php 无效的参数编号:未定义参数不匹配,php,mysql,pdo,Php,Mysql,Pdo,我还在学习php/pdo。我正在更新一个表。我能够从显示页面中获取特定行 $id = $_GET['id']; $sql = "SELECT * FROM aeroplane WHERE aeroplaneID=:aeroplaneID"; $query = $pdo->prepare($sql); $query->execute(array(':aeroplaneID' => $id)); while($row = $query->fetch()) { $

我还在学习php/pdo。我正在更新一个表。我能够从显示页面中获取特定行

$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']; 
}
但在尝试更新我得到的行时:

致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[HY093]:无效参数编号:未定义参数

现在,我已经检查了我要传递的参数的数量和它们的名称是否有错误,或者我的绑定值是否有误?这是我的更新代码:

$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();
这是发送更新的代码:

<td><input type="hidden" name="id" value=<?php echo $_GET['id'];?></td> 
<td><input type="submit" name="update" value="Update"></td> 
这是您的打字错误:

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

将其更改为
=:

位于
=
处的
=
之后,感谢您指出这一点,但现在如果进行更新,将删除该行,除了更改=:您是否在这两行之间编写了删除代码???我的删除代码位于完全不同的页面上此代码来自我的显示页面:echo“|”;因此,编辑和删除页面是不同的eah,@saty指出,但现在当我更新时,它会删除行,即使删除代码位于不同的页面上,我只能猜测,如果edit.php以某种方式调用了您的删除代码或包含了您的delete.phpyeah,那么您需要再次检查edit.php,现在就检查它