-2

これはかなり初歩的なことだと思いますが、私はphpが初めてです。このコードがテーブルに書き込まれない理由を誰か教えてもらえますか? フォームでデータベース内のテーブルを更新したいだけです。テーブル内のデータが上書きされないことを除いて、すべてが機能します。どんな助けでも大歓迎です!ありがとう。

<?php
$username="username";
$password="password";
$dbname="database";
$usertable="table";
$connect = @mysql_connect($hostname, $username, $password)or die
("cannot connect to db");
mysql_select_db($dbname);

$show=$_POST['show'];
$pro=$_POST['pro'];
$twmo=$_POST['twmo'];


mysql_query("INSERT INTO $usertable VALUES
('$show','pro','$twmo')" );

mysql_close($connect);
header("Location: http://www.myhomepage.com");

?>
4

1 に答える 1

1

初め、

  • コードは SQL インジェクションに対して脆弱です。
    悪意のあるユーザーは、テーブル全体を簡単に消去できます。
  • mysql_*!を使用するべきではありません。
    それは非推奨で悪いスタイルです!または PDOのチュートリアルを見つけてくださいmysqli。2008 年の記事を中継しないでください。

実際の質問については、自分でデバッグしてみてください。クエリが成功するかどうかを確認していません。クエリを実行するとmysql_query()、リソースまたはFALSE失敗のいずれかが返されます。これが発生しているかどうかを確認すると、エラーが発生している場所と使用されているものを正確に見つけることができますmysql_error()

テーブルが実際に呼び出されている場合table、それが問題です。tableは予約済みキーワードです。目盛り ` でカプセル化することで修正できますが、実際にはその名前を変更する必要があります。table という名前のテーブルを使用しても、まったく役に立ちません。それが含まれているものと呼んでください。

于 2012-06-27T15:30:28.753 に答える