に不必要なフォームへの対処。私が遭遇した問題は、私の変数の1つが必須ではないので、フォームに何も入力しないと、エラーが出ます。 この変数を正しく処理するにはどうすればよいですか? 私は別の用意されたステートメントを使用する必要がありますか、私は持っているものを保つことができますか? @アンドリューの答えを私はmysqliのプリペアドステートメントを使用してMySQLデータベースにフォームから変数を挿入しようとしていますmysqliの
答えて
動的に準備された文を作成します。フィールドがない場合は、フィールドを含めないでください。たとえば、フォームのフィールドname
、age
とemail
を持っており、顧客はname='Bo'
、age=27
しかし、誰電子メールを送信するとします。あなたは
$columns=['name','email','age'];//all possible columns
$p = &$_POST; //form data, eg: ['name'=>'Bo','age'=>27] email missing
$data=[];//data that will be inserted
foreach($columns as $col){
//add available data to $data
if(isset($p[$col])) $data[$col]=$p[$col];
}
$insertCols = '('. implode(',',array_keys($data)) .')';//result: "(name,age)"
$insertVals = '('.trim(str_repeat('?,',count($data)),',').')';//result:"(?,?)"
$sql = "INSERT INTO myTable $insertCols VALUES $insertVals";
今、あなたは、準備されたステートメントを作るために$sql
を使用して、あなたのコードとエラーを投稿$data
2つの異なるページに2つの部分があるため、私の値の一部は$ _SESSION変数に保存されます。私はすべて$ _SESSION配列に移動するか、投稿に追加する必要がありますし、投稿すればどうすればいいですか?フォームの中の隠れたフィールドですか? –
@JoshuaGertner私はちょうど簡単なアプリケーションを示しました。あなたのニーズに合わせて調整する必要があります。たとえば、ループの中に別の条件を追加することによって、他のソースの変数を直接 '$ data'に追加することができます:' if(isset($ _ SESSION [$ col]))$ data [$ col] = $ _SESSION [$ col]) ' – BeetleJuice
助けてくれてありがとう。 –
、彼は正しいです。フォームを投稿するとき
を詳しく説明するには、彼らは本当に存在するか、それらがNULLかどうかをチェックすることができ、チェックの時に、あなたはありません台無しあなたのSQLをすると、それらに異なる値を割り当てることができます。
、必要な、あなたがそれらを削除することができますが、それでも変数は本当に価値があるかどうかをチェックする最初のステップを行うなどのHTML5の検証を持っている場合。
- 1. mysqliとphpでプリペアドステートメントを使用して、フォームの情報をデータベースに挿入するにはどうしたらいいですか?
- 2. のMysqliは私がのMysqliプリペアドステートメントについての質問をしました、StackOverflowのの変数
- 3. PHPとMySQLiを使用して可変フォームデータを挿入
- 4. PHP/MySQLi WHERE句にWHERE句を使用してプリペアドステートメントを使用
- 5. php + mysqliを使用してテーブルのチェックボックスから値を挿入します
- 6. MYSQLiを使用してPHPでプリペアドステートメントの後に挿入されたオブジェクトのIDにアクセスします。
- 7. 私のコードをmysqlからmysqliに変更すると、mysqlとmysqliのバージョンが
- 8. PHPのプリペアドステートメントを使用してMySQLデータベースに配列を挿入します
- 9. MySQLiをプリペアドステートメントに変換するにはどうしたらいいですか?
- 10. mysqliを使用してデータを挿入する際の問題
- 11. mysqlとmysqliの使用について
- 12. mysqliのプリペアドステートメント、
- 13. PHPとMySQLiを使用してデータベースから変数の値を変更します
- 14. mysqliは配列を介してPOST値を挿入します
- 15. mysqliを使用してmysqlデータベースからutf-8 charachtersをアップロードする
- 16. どのようにPHPを使用してmysqlデータベースに挿入しますか?
- 17. PHP-プリペアドステートメントを使用してmysqlにバイナリデータを挿入する
- 18. "mysql_fetch_row"を使用してデータベースから結果を取得し、PHPとmysqliを使用して配列に挿入しますか?
- 19. PHPでブートストラップのページ設定を使用しようとしていますmysqli
- 20. 私はphp 5.6.25を使用して入力をフィルタリングしようとしていますが、mysqliに一度だけデータを入力しています
- 21. フォームからの入力を変数として使用してMySQLデータベースからデータを取得する
- 22. PHP mysqli - プリペアドステートメントから連想配列を返します
- 23. mysqliを使用してphpプリペアドステートメントを使用してデータテーブルにデータを表示するには?
- 24. 私はこのようなストアドプロシージャを使用して複数のレコードセットを返すようにしようとしていますMySQLiのオブジェクト
- 25. mysqliとphpを使ってデータがデータベースに挿入されない
- 26. mysqlをmysqliに変更し、データベースに接続できません
- 27. PHPとMySQLiを使用して異なるデータベーステーブルに変数と配列を挿入
- 28. sqliteデータベースを使用して値を挿入しようとしています
- 29. htmlのdropboxにphpを使用してmysqliデータベースの値を設定します
- 30. スプリングブートを使用してデータベースにjspフォームを挿入します。
からパラメータ値を取ることができますを行うことができます。 –
あなたが持っているものを保つことができます、上記のフィールドに何かが存在するかどうかをチェックし、それらのフィールドをクエリから外にします(これらのフィールドのテーブルにデフォルト値がある場合)それらのフィールドが空の場合。 – Andrew
fyiの場合、 'null'は準備されたクエリのプレースホルダ値として使用するのに最適です。 PHPにはキーワード 'null'があります。これは、準備されたクエリのバインド変数で期待することを行います。クエリを変更しないでください。空で必須ではないフィールドに 'null'を使用するだけです。 –