1

重複の可能性:
MySQL / PDO /プリペアドステートメント-すべての大きなジャンプ、少し圧倒的で少し混乱しますか?

このコードを使用して、ユーザーテーブルにデータを挿入しています。ユーザーの名前にアポストロフィが含まれていない限り、正常に機能します(例: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 に答える