2017-04-21 118 views
-1

我仍在学习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']; 
} 

但试图更新的行,当我得到:

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

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

$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> 

但不是更新,它删除行,我的删除代码是一个完全不同的页面上。

+1

':'=''在'之后已经来到:= aeroplaneTopSpeed' – Saty

+0

感谢指出了这一点,但现在如果做一个更新,删除行,除了= = – user2371684

+0

更改以外的行上,我没有改变任何其他的东西你有没有写在它们之间的任何删除代码??? – Saty

回答

0

有你的错字:

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

将其更改为=:

+0

是的,@saty指出,但现在当我更新时,它删除该行,即使删除代码是在不同的页面 – user2371684

+0

嗯,我只能猜测你需要重新检查你的edit.php如果它以某种方式调用您的删除代码或包含您的delete.php – core36

+0

是的,现在通过它 – user2371684

相关问题