-1

私が試してみると、これはうまくいきません:

<?php
include ($_SERVER['DOCUMENT_ROOT'] . '/contact/config.inc.php');

$hash = hash('md5', $_POST["password"]);

$connection = mysql_connect($host, $user, $password);

mysql_select_db($database, $connection);

mysql_query("UPDATE data
SET password=" . $hash . 
"WHERE id=" . $_POST["id"]);

mysql_close($connection);
?>

データはデータベースに表示されません。ハッシュと ID を固定値に設定しようとしましたが、まだ機能しませんでした。他のスクリプトで機能するため、データベース接続が機能すると確信しています。そして、すべての変数は、それらを使用すると正しく表示されechoます。

私はPHPとMySQLが初めてです。

4

2 に答える 2

1

quotes値を囲んで追加してみてください。

mysql_query("UPDATE data SET password='" . $hash . "' WHERE id='" . $_POST["id"] . "'") ;

注: Mysql 拡張機能は非推奨です。Mysqli_* または PDO 拡張機能を使用してください。

于 2013-01-21T16:40:05.583 に答える
0

その理由は、クエリを誤ってエスケープしているため、変数を引用符で囲んでいないためです。

これを変える:

mysql_query("UPDATE data
SET password=" . $hash . 
"WHERE id=" . $_POST["id"]);

これに:

mysql_query("UPDATE data
SET password='" . $hash . 
"' WHERE id='" . $_POST["id"] ."'");

これを入力しているときに、エスケープを閉じるためにクエリに戻っていないことに気付きました。

引用符を追加し、クエリに戻って引用符を閉じたことに注意してください。

于 2013-01-21T16:45:25.007 に答える