-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 回答