我想通过下面的代码更新 MySQL 数据库,但它不起作用,为什么?
<?php
mysql_connect("localhost","root","");
mysql_select_db("timer");
$update=$_COOKIE['name'];
mysql_query("UPDATE user SET password='2' WHERE username=$update");
?>
我想通过下面的代码更新 MySQL 数据库,但它不起作用,为什么?
<?php
mysql_connect("localhost","root","");
mysql_select_db("timer");
$update=$_COOKIE['name'];
mysql_query("UPDATE user SET password='2' WHERE username=$update");
?>
字符串值应该被引用:MySQL String Literals。
mysql_query("UPDATE user SET password='2' WHERE username='$update'");
$dsn = 'mysql:dbname=timer;host=127.0.0.1';
$user = 'root';
$password = '';
$update=$_COOKIE['name'];
$query = 'UPDATE user SET password='2' WHERE username=(?)';
try {
$dbh = new PDO($dsn, $user, $password);
$dbh->prepare( $query )->execute( array($query) );
} catch (PDOException $e) {
echo 'Connection failed ' . $e->getMessage();
}
无法确定它是否有效,因为我不知道您的 $_COOKIE 数组中有什么。
但是代码应该是这样的。
为了安全起见,您可以向变量 $update 添加一些文本转换,例如添加斜杠或其他。
使用准备好的查询,你这样做的方式不是一个好习惯。还要检查是否$update
不为空,否则查询将不起作用,最后,使用mysqli_*
函数而不是mysql_*
:)
<?php
mysql_connect("localhost","root","");
mysql_select_db("timer");
$update=$_COOKIE['name'];
mysql_query("UPDATE ´user´ SET password='2' WHERE username='$update'");
?>
尝试在此查询中提及您的表的名称,如下所示:“用户”
让我建议您,如果您的查询不起作用,那么您可以将整个查询放在回显(或打印)中以查看问题所在。
例如:
echo "mysql_query(\"UPDATE user SET password='2' WHERE username=$update\";