0

PHP をブラッシュアップし、問題が発生した簡単なプログラムに取り組んでいます。mysql の行を削除する方法がわかりません。私のスクリプトを貼り付けたドキュメントにリンクして、どのように設定したかを確認できるようにします。

私は AJAX や Javascript に慣れていないので、削除ボタンをフォームにしました。出来れば今のままでいいと思います。

ここでペースト

4

3 に答える 3

2

変化する:

mysql_query("DELETE FROM name WHERE name=.'$del'.");

に:

mysql_query("DELETE FROM name WHERE name='".$_POST['$del']."'");

理由:
1。を取り除く必要があります。クエリ内では、ドットは文字列の連結に使用されます。
2.次の値を使用します$_POST['$del']-パラメータ$delが設定されていません

更新:

  1. に変更<input type="hidden" name="del" /><input type="hidden" name="del" value="theNameYouWantToDelete"/>
  2. すべてのフォーム要素に同じ名前を付けます(name = "del")-これはお勧めしません!オブジェクトごとに異なる名前を設定することをお勧めします。
  3. 使用しないでくださいmysql_*-非推奨であり、sql-injectionに対して脆弱です。代わりに、PDOまたはMySQLiを使用してください。
于 2012-08-14T04:22:04.753 に答える
0

$del変数を適切に連結していません。あなたは単に使用することができます:

mysql_query("DELETE FROM name WHERE name='$del'");

また、クエリ$delの前に設定する必要があります。DELETEその変数は、使用しようとする前に宣言されていないため、null.

于 2012-08-14T04:20:41.660 に答える
0

30 行目には という名前delの 2 つの入力があり、2 番目の入力には削除する名前が含まれていません。

echo '<form id="del" method="post"><input type="submit" name="del" value="X" /><input type="hidden" name="del" /></form>';

次のようなものに変更する必要があります-

echo '<form id="del" method="post"><input type="submit" name="del_submit" value="X" /><input type="hidden" name="del" value="'.$del.'" /></form>';

次に、12行目から13行目を次のように変更します

if (isset($_POST['del_submit'])) {
mysql_query("DELETE FROM name WHERE name='".$_POST['del']."'");

mysql_関数は減価償却され、SQL インジェクションの対象になることに注意してください。

于 2012-08-14T04:34:28.497 に答える