1

一度送信するとデータベースにデータを挿入するフォームを作成しました。INSERT INTO table (name, comment) VALUES ($name, $comment) のようなクエリ文字列で変数名を使用すると機能しますが、pdo 準備済みステートメントを使用すると機能しません。現在持っているコードは次のとおりです。

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/" . $_FILES["file"]["name"]);
$stmt = $conn->prepare('INSERT INTO instructors (name, bio, picture) VALUES (:name, :bio, :picture)');
$stmt->bindParam(':name', $_POST['name']);
$stmt->bindParam(':bio', $_POST['bio']);
$stmt->bindParam(':picture', $_POST['file']['name']);
$stmt->execute();

ファイルはアップロードされ、指定したディレクトリに移動されますが、データベースにはデータが挿入されません。理由はありますか?

4

2 に答える 2

0

試す

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/" . $_FILES["file"]["name"]);
$stmt = $conn->prepare('INSERT INTO instructors (name, bio, picture) VALUES (:name, :bio, :picture)');
$stmt->bindParam(':name', $_POST['name']);
$stmt->bindParam(':bio', $_POST['bio']);
$stmt->bindParam(':picture', $_POST['filename']);// Only 1 set of []s in $_POST[]
$stmt->execute();
于 2012-11-23T17:44:50.407 に答える
-1

私はあなたがこのようなことをすべきだと信じています:

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/" . $_FILES["file"]["name"]);
$stmt = $conn->prepare('INSERT INTO instructors (name, bio, picture) VALUES (:name, :bio, :picture)');

$stmt->execute(array(
    ':name'=> $_POST['name'],
    ':bio'=> $_POST['bio'],
    ':picture'=> $_POST['file']['name']
));
于 2012-11-23T14:59:36.653 に答える