<?php if (isset($_POST["add"])) { $name = $_POST["name"]; $number = $_POST["number"]; $age = $_POST["age"]; $comment = $_POST["comment"]; try { $db = new PDO('mysql:host=localhost;dbname=sample','root','pass'); $sql = 'insert into home(name,number,age,comment) values(?,?)'; $stmt = $db->prepare($sql); $stmt->execute(array($name,$number,$age,$comment)); $stml = null; $db = null; } catch (PDOException $e) { echo $e->getMessage(); exit; } } ?>PHP
1コード
commentがtextareaのnameです。
textareaで入力してもしなくてもいい入力欄を作るのにmysqlのtableでのカラムでnullかnot
1not nullだと何か絶対入力する必要があってnullだと何も入力することができないと思うのですがこの場合どうすればいいのでしょうか 2 3textareaの欄をnullにすると、 4execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in 5と出てしまいます。文字を入力したときとしていないときで同じ結果になります。 6これは指定したpostしたいデータ数よりも実際に受け取ったデータ数が少ないと調べると書いてあったのですがtextareaのデータを入れないといけないことになっているということですか?
試せば明白ではないでしょうか。
思うようにできなかったところで大した失敗にはなり得ません。
>Invalid parameter number: number of bound variables does not match number of tokens in
このエラーとtextareaがnullはあまり関係がないです。
PHP実装上の考慮漏れです。PHPのコードを提示されないことには解決しません。
そうなんですね。
code付け加えました。
もしお時間がございましたらお願いします。
>そうなんですね
エラーの出方で分かります。
コードのマークダウンができてませんので調整願います。
MySQL 5.6 リファレンスマニュアル 日本語版 置いときますね。https://dev.mysql.com/doc/refman/5.6/ja/ テーブルの定義周りに関しては https://dev.mysql.com/doc/refman/5.6/ja/create-table.html にあるけど、わかりにくいかな。 https://dev.mysql.com/doc/refman/5.6/ja/getting-information.html も読むといいかも。
回答3件
あなたの回答
tips
プレビュー