1

可能重复:
MySQL / PDO / Prepared Statements - 都是一个很大的跳跃,有点压倒性和有点混乱?

我正在使用此代码将数据插入用户表中。除非用户的姓氏包含撇号(例如 O'Toole),否则它可以正常工作。我的理解是,PDO 准备好的语句应该处理撇号,而我不需要额外的工作。我的假设是否不正确,这就是为什么此代码不适用于带有撇号的名称的原因?

我没有收到错误消息。

require_once('/database/database.php');
$query = "INSERT INTO users
             (first_name,last_name, email, pass, reg_date)
          VALUES
             ('$fn','$ln','$em', SHA1('$pwd'), NOW())";

try {
    $statement=$db->prepare($query);
    $statement->bindValue(':first_name',$fn);
    $statement->bindValue(':last_name',$ln);
    $statement->bindValue(':email',$em);
    $statement->bindValue(':pass',SHA1('$pwd'));

    $success = $statement->execute();
    $row_count = $statement->rowCount();
    $statement->closeCursor();
4

1 回答 1

2

您没有正确使用绑定,请尝试以下操作:

$query = "INSERT INTO users
         (first_name, last_name, email, pass, reg_date)
      VALUES
         (:first_name, :last_name, :email, :pass, NOW())";

您将值“绑定”到查询中的占位符。

于 2012-10-04T00:04:20.333 回答