PDOでmysqlへinsertについて
現在釣りの仲間が集まるサイトを作っており、会員登録機能がついています。
ニックネームやアドレスなどを登録する簡易な機能です。
ここに新しい機能として自分のプロフィール画像をのせれるようにしたいと思い、参考になるサイトみつけあれこれ試している状態です。
サイトの方を勝手に載せていいのかわからないので、困っている部分のコードを掲載シます。
$stmt = $pdo->prepare(implode(' ', array(
'INSERT',
'INTO image(name, type, raw_data, thumb_data, date)',
'VALUES (?, ?, ?, ?, ?, ?)',
)));
$stmt->execute(array(
$_FILES['upfile']['name'],
$info[2],
file_get_contents($_FILES['upfile']['tmp_name']),
ob_get_clean(), // バッファからデータを取得してクリア
date_format(
new DateTime('now', new DateTimeZone('Asia/Tokyo')),
'Y-m-d H:i:s'
),
));
というコードでinsertの?を:ooに変えてidを指定したいと思っております。
$stmt = $pdo->prepare(implode(' ', array(
'INSERT',
'INTO image(id, name, type, raw_data, thumb_data, date)',
'VALUES (15, :name, :type, :raw_data, :thumb_data, :date)',
)));
$stmt->execute(array(
$_FILES['upfile']['name'],
$info[2],
file_get_contents($_FILES['upfile']['tmp_name']),
ob_get_clean(), // バッファからデータを取得してクリア
date_format(
new DateTime('now', new DateTimeZone('Asia/Tokyo')),
'Y-m-d H:i:s'
),
));
これで実行すると15番のIDに画像が登録され問題ないです。
しかし15と直接打たないとエラーになってしまいます。
やりたいことはログインしているセッションのID(会員番号)で画像を登録しプロフィール画面など呼び出して使いたいということです。
自分なりにセッションのIDを入れる工夫をしてみたのですが、どうもエラーになってしまったり変に登録されてしまったりと上手くいきません。
ヒントなど何か解決のお手伝いをお願いいたします。
お礼
早速どうもありがとうございます。 >bindParamでバインドされるのは変数の値ではなく変数 すぱっと理解できました。 では、いざ挑戦してきます! うまく動くことが確認できましたら、回答を締め切らせて頂きます!