我想通过以下代码更新MySQL数据库,但它不起作用?
<?php
mysql_connect("localhost","root","");
mysql_select_db("timer");
$update=$_COOKIE['name'];
mysql_query("UPDATE user SET password='2' WHERE username=$update");
?>
答案 0 :(得分:1)
应引用字符串值:MySQL String Literals。
mysql_query("UPDATE user SET password='2' WHERE username='$update'");
答案 1 :(得分:1)
$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添加一些文本转换,例如addslashes或其他。
答案 2 :(得分:0)
使用准备好的查询,你的方式不是一个好习惯。还要检查$update
是否为空,否则查询将无效,最后,使用mysqli_*
函数代替mysql_*
:)
答案 3 :(得分:0)
<?php
mysql_connect("localhost","root","");
mysql_select_db("timer");
$update=$_COOKIE['name'];
mysql_query("UPDATE ´user´ SET password='2' WHERE username='$update'");
?>
尝试在此查询中提及您的表名称,如下所示:'user'
让我向您推荐,如果您的查询不起作用,那么您可以将整个查询放在回显(或打印)中以查看错误。
例如:
echo "mysql_query(\"UPDATE user SET password='2' WHERE username=$update\";