現在「基礎からのMYSQL」という本でXAMPPを導入しMySQL,PHPの基礎を勉強中です。
(mysql_query() を初めて学習中です。)
例にならってスクリプトを書いてみたのですが、MySQL内にあるレコードを削除するためのスクリプトがうまく作動しません。
(SELECT, INSERT, SEARCH は正常に作動します。DELETEだけがなぜかうまくいきません。)
ApacheとMySQLは起動しています。
考えられる原因をおしえていただけませんでしょうか。よろしくおねがいいたします。
ソースコードは下記のとおりです。
★HTML(トップページ)
//メッセージ表示のスクリプトを呼び出すフォーム
<form method="post" action="kantan_select.php">
メッセージを表示します<br>
<input type="submit" value="メッセージ表示">
</form>
//挿入のスクリプトを呼び出すフォーム
<form method="post" action="kantan_insert.php">
名前を入力してください<input type="text" name="a1"><br>
メッセージを入力してください<input type="text" name="a2" size=150><br>
<input type="submit" value="送信">
</form>
//☆☆☆削除のスクリプトを呼び出すフォーム☆☆☆
<form mothod="post" action="kantan_delete.php">
削除番号<input type="text" name="b1"><br>
<input type="submit" value="削除番号送信">
</form>
//検索のスクリプトを呼び出すフォーム
<form method="post" action="kantan_search.php">
検索キーワード<input type="text" name="c1"><br>
<input type="submit" value="検索開始">
</form>
★レコード削除のPHPスクリプト
<?php
$s=mysql_connect("localhost","root","パスワード") or die("接続失敗");
print "接続しました<br>";
mysql_select_db("db1");
$b1_d=$_POST["b1"];
mysql_query("delete from tbk where bang=$b1_d") ;
$re=mysql_query("select * from tbk order by bang");
while($kekka=mysql_fetch_array($re)){
print $kekka[0];
print ":";
print $kekka[1];
print ":";
print $kekka[2];
print "<br>";
}
mysql_close($s);
print "<br><a href='kantan.html'>メニューに戻る</a>"
?>
<環境>
Windows 7
XAMPP導入するための付属CD-ROMの内容
・Apache(HTTPD2.2.6 + Openssl0.9.8e)
・MySQL(5.0.45)
・PHP(5.2.4)
・PHP(4.4.7)
・phpMyAdmin(2.11.1)
・Zend Optimizer
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
本件に限らず、初心者なら何かにつまづいたら最低限次のようにしてみましょう。
1. エラーメッセージなどがあればよく読む。訳す。
2. 変数の値を印字して確認。
> うまく作動しません。
もしなにかエラーメッセージなどが出ているなら、それをよく読んでみるといいですよ。解決のヒントになることが多いです。
> $b1_d=$_POST["b1"];
> mysql_query("delete from tbk where bang=$b1_d") ;
echoやprintなどを使って想定通りの値かどうか確認しましょう。
例えば
$b1_d=mysql_real_escape_string($_POST["b1"]);// 悪意あるユーザ入力への対策
echo "変数b1_dは".$b1_d;// 変数の値を印字して確認
$querystring="delete from tbk where bang=$b1_d";// クエリの文字列を変数に格納。テストがしやすくなる
echo "クエリ文字列は".$querystring;// クエリ文字列を印字して確認
mysql_query($querystring) ;// クエリ送信。文法的に変ならなにかメッセージが出ることが多い。それを良く見ること
No.2
- 回答日時:
斜め読みしかしていませんが
>$b1_d=$_POST["b1"];
>mysql_query("delete from tbk where bang=$b1_d") ;
$b1_d=mysql_real_escape_string($_POST["b1"]);
mysql_query("delete from tbk where bang='$b1_d'") ;
みたいな感じでどうでしょう?
この回答への補足
どうもありがとうございます。
アドバイスのとおりにmysql_real_escape_stringを入れてみました。
No.1と同様に
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
とエラー表示されてしまいます。
一行目に何か間違いがあるんでしょうか?
No.1
- 回答日時:
$b1_d=$_POST["b1"];
mysql_query("delete from tbk where bang=$b1_d");
↓
$b1_d=$_POST["b1"];
mysql_query("delete from tbk where bang=$b1_d") or die (mysql_error());
に書き換えて、エラーが表示されたら、それが原因です。
この回答への補足
ありがとうございます。
アドバイスのとおりにやってみました。
すると下記のエラーメッセージが表示されました。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
一行目に間違いがあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL文2つ実行
-
MySQLのUPDATE実行結果を受け取...
-
SQLの結果が返ってこない
-
XAMPPで画面が真っ白になります。
-
PHP+mysqlでSQL文に文字数制限...
-
テーブルに入っているデータと...
-
MySQLでデータベースにデータin...
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
<VB.NET>INSERT文でDBにデータ...
-
テキストボックスに入れた内容...
-
VB.NET
-
SQL文が実行できません
-
JAVA SQLServerException 列名 ...
-
while文の中にwhile文を書きた...
-
Pro*Cの構文エラー
-
in 'where clause'のエラーの理由
-
SQL文の実行に失敗しました???
-
ヒアドキュメントでSQLを書く事...
-
VBSの中で書くSQL文の記...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sqlから多次元配列に要素を格納...
-
PHP+mysqlでSQL文に文字数制限...
-
phpのエラーについてです
-
PHPで絞り込み検索結果の件数を...
-
PDOを使いたい
-
CSVをダウンロードさせた際、CS...
-
stringaddslashes 半角¥が消える
-
MySQLのデータを使ってプルダウ...
-
mariadbでのエラー
-
php+mysql sql文実行について
-
XAMMPが起動しません。
-
SQL文2つ実行
-
会員登録したらメールが送られ...
-
「mysqlclient」の事が分からな...
-
if文で、レコードが無い場合だ...
-
mysql_real_escape_string
-
XAMPPで画面が真っ白になります。
-
配列に値が入らない
-
SQLの結果が返ってこない
-
ボタンのonclick時における関数...
おすすめ情報