人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPのPDOでのINSERT(プリペアドステートメント)についての質問です。
ECサイトのユーザー追加機能を作っています。
MySQLに接続しパスワードをハッシュ化した後以下のコードを動かします。($idはユーザー名、$passはハッシュ化したパスワードが入っています。)
$stmt=$pdo->prepare("INSERT INTO user (id,pass) VALUES(':id',':pass')");
$stmt->bindParam(':id',$id);
$stmt->bindParam(':pass',$pass);
$stmt->execute();
エラーは出ないのですがMySQLには$idや$passではなく:id,:passといった仮の値が追加されています。bindParam以降が全く効いていないのです。

この原因として考えられることは何でしょうか。またPHPのバージョンは5.4.41です。

●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー

> prepare("INSERT INTO user (id,pass) VALUES(':id',':pass')")
SQL 中で、プレースフォルダではなく文字列にしてしまっているからでしょう。
prepare("INSERT INTO user (id,pass) VALUES(:id,:pass)")
でいいのでは?

公式マニュアルの bindParam や prepare の例をご覧ください。


匿名質問者さんのコメント
ありがとうございます。ユーザー追加できました。 ずっとbindParamが違うのだと思っていてprepareは見ていませんでした(汗)
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ