1

我是 PDO 和准备好的语句的新手,我无法将多个值绑定到我的查询。如果在进行 SELECT 时只是一个,我没有问题,例如:

SELECT foo FROM table WHERE id=:something // no problem

但是多个,并试图插入我被卡住了:

Insert INTO mytable (field1, field2) VALUES (:value1, :value2) // No bueno 

尝试了几种不同的方法并在这里阅读了其他帖子,但没有运气。以下是我遇到问题的示例:

$insertSQL = $db->prepare("INSERT INTO voting_poll (ipaddress, choice) 
    VALUES (':ipaddress', :value)");
    $insertSQL->bindParam(':ipaddress', getenv('REMOTE_ADDR'), PDO::PARAM_STR);
    $insertSQL->bindParam(':value', $_POST['radio'], PDO::PARAM_STR);
    $insertSQL->execute();

我收到以下错误:无效的参数号:绑定变量的数量与令牌的数量不匹配

4

1 回答 1

1
  1. 你不要在参数周围加上引号。删除查询中的引号:ipaddress

  2. bindParam()必须与变量一起使用,因为它将参数绑定到变量引用。如果您想使用一个值(例如,函数的返回值,如getenv()),请bindValue()改用。

于 2013-02-08T05:18:59.560 回答