通过php更新数据库

时间:2013-07-19 08:40:03

标签: php

我想通过以下代码更新MySQL数据库,但它不起作用?

<?php
    mysql_connect("localhost","root","");
    mysql_select_db("timer");
    $update=$_COOKIE['name'];
    mysql_query("UPDATE user SET password='2' WHERE username=$update");
?>

4 个答案:

答案 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\";