質問: よくわかるPHPの教科書を使って、PHPの学習をしています エラーが出て困っています 調べてところ INSERT文のVALUE()の値をシングルコーテションで囲む必要があると書かれていましたが 参考書の記述ではsprintfを使って%d or "%s" にPOSTされた情報を代入しているようです この場合はどのように解決すればよいのでしょうか データベースの中身 名前 mydb テーブル my_items 要素 id item_name price 1 バナナ 200 2 リンゴ 300 エラー内容 Unknown column 'maker_id' in 'field list' ``` 商品を登録しました ``` ``` 商品登録 登録する商品の情報を記入してください メーカーID 商品名 価格 円 キーワード ```
回答: 単純にデータベースの my_items テーブルに `maker_id` カラムが定義されてないので、Unknown column と言われてるだけかと。 ちなみに、PHP の mysqlエクステンション(mysql_XXXX の名前がついた関数全部) は開発が終了しており、現行の PHP バージョン 7.1 では**すでに削除されて使用できません**。替わりに mysqli か PDO を使って下さい。 これは「よくわかるPHPの教科書」が発行から長い年月が経ち、内容が陳腐化してしまったためです。できれば改訂版(あまり評判がよくありません・・・)か、他の最近出版された入門書を買い直すことをオススメします。 おそらく最近の入門書なら解説されていると思いますが、セキュリティ対策のため **プリペアドステートメント** という方法で INSERT を行うようにしてください。