PHP
1$staff_name = $_POST['name']; 2 $staff_pass = $_POST['pass']; 3 4 $staff_name = htmlspecialchars($staff_name, ENT_QUOTES, 'UTF-8'); 5 $staff_pass = htmlspecialchars($staff_pass, ENT_QUOTES, 'UTF-8'); 6 7 $dsn = 'mysql:host=localhost:8889;dbname=shop;charest=utf8'; 8 $user = 'tennisuser'; 9 $password = 'password'; 10 11 $db = new PDO($dsn, $user, $password); 12 $db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 13 $db ->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 14 15 $sql = 'INSERT INTO mst_staff(name, password) VALUES(?, ?)'; 16 $stmt = $db ->prepare($sql); 17 $stmt ->bindParam(1, $staff_name, PDO::PARAM_STR); 18 $stmt ->bindParam(2, $staff_pass, PDO::PARAM_STR); 19 $stmt ->execute($data); 20 $db = null; 21 22 print $staff_name; 23 print 'さんを追加しました<br />';
PHP
1$staff_name = $_POST['name']; 2 $staff_pass = $_POST['pass']; 3 4 $staff_name = htmlspecialchars($staff_name, ENT_QUOTES, 'UTF-8'); 5 $staff_pass = htmlspecialchars($staff_pass, ENT_QUOTES, 'UTF-8'); 6 7 $dsn = 'mysql:host=localhost:8889;dbname=shop;charest=utf8'; 8 $user = 'tennisuser'; 9 $password = 'password'; 10 11 $db = new PDO($dsn, $user, $password); 12 $db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 13 $db ->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 14 15 $sql = 'INSERT INTO mst_staff(name, password) VALUES(?, ?)'; 16 $stmt = $db ->prepare($sql); 17 $data[] = $staff_name; 18 $data[] = $satff_pass; 19 $stmt ->execute($data); 20 21 22 $db = null; 23 24 print $staff_name; 25 print 'さんを追加しました<br />';
両方ともtry文の中です。上は問題なく機能するのですが下のように配列を使って挿入しようとすると
NULLは挿入できないという旨のエラーが出ます。原因はなんでしょうか。MYSQLとマンプを使用しています。
回答2件
あなたの回答
tips
プレビュー