私は壁に頭を向けて、このPDOの準備ができていない声明がうまくいかない理由を考え出しています。私が結論づけることができるのは、変数が空の場合INSERTは失敗しますが、これは問題なく何千も前にこれを実行したに違いないので、これは混乱しています。PDOで準備されたステートメントでMySQLに空の変数を挿入する
ここに私のコードです。すべての変数はPOST変数から設定されているため、ユーザーがこのデータを提供しなかった場合、それらのうちのいくつかは空白になる可能性があります。
$stmt = $db->prepare("INSERT INTO students
(id, classid, userid, firstname, surname, form, gender)
VALUES ('', :classid, :userid, :firstname, :surname, :form, :gender)");
$stmt->execute(array(':userid' => $userid, ':classid' => $classid, ':firstname' => $firstname, ':surname' => $surname, ':form' => $form, ':gender' => $gender));
変数が空の場合、空のフィールドを挿入する方法はありますか?
編集:これは新しい声明ではありません。以前は準備ができていなかったMySQLiでINSERTしていましたが、このコードをPDOに更新するだけでした。
EDIT 2:私のスキーマ:
id int(11) NO PRI auto_increment
encryption int(1) NO
classid int(11) NO
googleclassroom varchar(50) NO
userid varchar(50) NO
firstname varchar(100) NO
surname varchar(100) NO
form varchar(10) NO
gender varchar(10) NO
colour_code varchar(10) NO
col1 varchar(50) NO
col2 varchar(50) NO
col3 varchar(50) NO
col4 varchar(50) NO
col5 varchar(50) NO
col6 varchar(50) NO
col7 varchar(50) NO
timestamp datetime NO
あなたは何をしていないのですか?何かエラーがありますか?あなたはSQL例外を記録できますか? –
ユーザーがすべての値を入力したときに値を挿入することはできますか? – Billa
行を挿入していません。エラーはありませんが、エラーを報告するように設定されているかどうかはわかりません。 – Rob