【问题标题】:PDO/PHP - bindValue does not seem to be workingPDO/PHP - bindValue 似乎不起作用
【发布时间】:2016-01-28 22:43:44
【问题描述】:

根据我发现和看到的一切,这似乎是正确的。当我打印 $query 时,结果如下:

“插入客户(FirstName、MiddleInit、LastName、地址、城市、州、邮编、电子邮件、性别)值 (?,?,?,?,?,?,?,?,?)”

参数应该已经用bindValues()中的变量填充了。所以,例如...

插入客户(FirstName、MiddleInit、LastName、地址、城市、州、邮编、电子邮件、性别)值(Bill, A, Hopkins, 123 Ave, ....)

我想坚持使用这种方法 - 它被一个 try/catch 块包围。通过打印查询变量,我可以看出问题所在。

我错过了什么?非常感谢您的关注!

$query = 'INSERT INTO customers (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (?,?,?,?,?,?,?,?,?)';
        echo $query;
        $statement = $db->prepare($query);
        $statement->bindValue(1, $firstName);
        $statement->bindValue(2, $middle);
        $statement->bindValue(3, $lastName);
        $statement->bindValue(4, $address);
        $statement->bindValue(5, $city);
        $statement->bindValue(6, $state);
        $statement->bindValue(7, $zip);
        $statement->bindValue(8, $email);
        $statement->bindValue(9, $gender);
        $success = ($statement->execute());

【问题讨论】:

  • 不知道,没有足够的代码来提供解决方案。您是否使用 PDO 作为 API 进行连接,以及您的变量是否确实正确。检查错误。
  • 准备好的语句不是这样工作的。该语句保留为带有占位符的查询(如带参数的函数),当在数据库上执行时,绑定参数被注入(如调用函数)
  • 我投票结束这个问题,因为它是关于对准备好的陈述的误解
  • @Phil Example #2 php.net/manual/en/pdostatement.bindvalue.php 说明了这一点,还是我遗漏了什么?
  • 我建议你阅读en.wikipedia.org/wiki/Prepared_statement。 @Fred-ii- 我认为 OP 期望通过绑定值来更改 $query 字符串

标签: php pdo bindvalue


【解决方案1】:

考虑到错误,我们需要更多代码,但您可以尝试使用准备好的语句:

$query = 'INSERT INTO customers (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (:firstName, :middle, :lastName, :address, :city, :state, :zip, :email, :gender)';
$statement = $db->prepare($sql);
$statement->execute(array(':firstName'=>$firstName, ':middle'=>$middle, ':lastName'=>$lastName, ':address'=>$address, ':city'=>$city, ':state'=>$state, ':zip'=>$zip, ':email'=>$email, ':gender'=>$gender));

【讨论】:

  • OP是使用位置参数还是命名参数不相关
猜你喜欢
  • 2013-01-03
  • 2011-02-11
  • 2014-06-05
  • 1970-01-01
  • 2017-10-26
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多