从php更新MySQL boolean(tinyint)值

时间:2014-10-29 23:33:49

标签: php mysql

我写的脚本有点问题。

$sql ="UPDATE users SET adagio = 1 WHERE username = '$_SESSION[username]'"; 

这里的主要问题是,虽然我已经测试了

  1. 这部分代码将运行

  2. 我已成功连接到正确的服务器

  3. 3)$_SESSION[username]为我提供了正确的用户名, 运行代码时,数据库不会更新。 adagio是一个布尔值(嗯,一个微小的位置,真的),我在这里上传了我的phpMyAdmin数据库屏幕:

    http://imgur.com/HUFdx0p

    我不完全确定它为什么不起作用,虽然我在网上搜索并发现了类似的线程,但在任何适用于我的线程中都没有修复。我想知道你们其中一个人是否可能看到我在这里做错了什么?

    编辑额外:

    if(($_POST['adagio']) == 1){
    $sql ="UPDATE users SET adagio = 1 WHERE username = '$_SESSION[username]'";
    }
    

2 个答案:

答案 0 :(得分:2)

$_SESSION[username]几乎肯定是一个字符串,因此它必须在引号中:

$sql ="UPDATE users SET adagio = 1 WHERE username = '$_SESSION[username]'"; 

仅供参考,如果你检查它们,MySQL很乐意告诉你SQL错误。您应该在正在使用的任何MySQL库中使用适当的错误报告功能。

答案 1 :(得分:0)

你能试试吗?

if (1 == $_POST['adagio']) {
    $sql = sprintf ( "UPDATE users SET adagio = 1 WHERE username = '%s'", mysql_escape_string($_SESSION['username']) );
}