PHP データを削除する際の cd の受け渡しについて。

【講座名】
PHP初心者入門講座 に関する質問

【質問】
PHPでDB(データベース)からデータを削除する際の、cdの受け渡しについて、ご質問させていただきます。

http://php5.seesaa.net/category/4118446-1.html
上記ページの「delete.php」についてなのですが、
『PREF_CD』の部分に数字だけではなく『abc_01』等のようにアルファベットや記号が入力されていると、『削除』を押した次のページにて

「クエリの送信に失敗しました。
 SQL:SELECT PREF_NAME FROM DB名 WHERE PREF_CD = cd」

とのエラーメッセージが出てしまいます。

恐らく、SQL文のダブルクォーテーション等の追加かと思い、自分が考え付く限りの事をしてみましたが、PHP自体がエラーになるか、上記に書いたエラーメッセージが表示されます。

初歩的な質問かと思いますが、ご助力お願いいたします。

【回答】
講座の手順通りに進めた場合だと、MySQLのテーブルは、以下のSQL文で作成されています。


CREATE TABLE T01Prefecture (
  PREF_CD INT PRIMARY KEY,
  PREF_NAME VARCHAR(10)
);


PREF_CD はデータ型に INT を指定しているので、「整数」しか扱うことができません。

もし文字列を含んだデータを入力したい場合は、 VARCHAR などのデータ型にしておく必要があります。

でも PRIMARY KEY を指定する列(フィールド)は、一意のデータを入力しなければならないので、通常は数値が適しています。数値にすると、自動的に番号を振ることも簡単です。

商品の型番など、数字と文字を混在して入力する場合は、新たに専用の列を追加したほうが無難です。

スポンサードリンク


スポンサードリンク






プログラミング入門 Q&A TOPへ