Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP+;MYSQL:更新查询有问题_Php_Sql_Mysql - Fatal编程技术网

PHP+;MYSQL:更新查询有问题

PHP+;MYSQL:更新查询有问题,php,sql,mysql,Php,Sql,Mysql,运行此查询时遇到问题。我不断发现错误: 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“read=”readd'附近使用的正确语法,其中user_id='1'LIMIT 1' 代码 $conn = mysql_connect('localhost', 'admin', 'root') or die(mysql_error()); mysql_select_db('main') or die(mysql_error()); $read = "mess

运行此查询时遇到问题。我不断发现错误:

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“read=”readd'附近使用的正确语法,其中user_id='1'LIMIT 1'

代码

 $conn = mysql_connect('localhost', 'admin', 'root') or die(mysql_error());
    mysql_select_db('main') or die(mysql_error());

 $read = "message read";

 $set_statuss = "UPDATE inbox ".
            "SET read = '".$read."' ".
            "WHERE user_id = '".$_SESSION['user_id']."' ".
            "LIMIT 1";
编辑:这是表格:

 CREATE TABLE `inbox` (
 `inbox_id` int(5) NOT NULL auto_increment,
 `posted_to` int(5) NOT NULL,
 `posted_by` int(5) NOT NULL,
 `subject` text NOT NULL,
 `message` text NOT NULL,
 `date_posted` datetime NOT NULL,
 `read` text NOT NULL,
 PRIMARY KEY  (`inbox_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
编辑:更新了查询,但现在PHP显示为白色

 $read = "read";

 $set_statuss = "UPDATE inbox ".
            "SET read = '".$read."' ".
            "WHERE posted_to = '{$_SESSION['user_id']}' AND inbox_id = '".$_GET['msg_id'];."' ";

 mysql_query($set_statuss) or die(mysql_error() . $set_statuss);
以及地址栏中的url:

 http://localhost:8888/wmin/msg.php?user_id=1&msg_id=2

有人知道我哪里出错了吗?谢谢

我想它可能把
作为一个关键词,试着用stropping,也就是说,在它周围用``反引号(很难用SO的降价语言表达;-)。

我想它可能把
作为一个关键词,试着用stropping,也就是说,在它周围用``反引号(很难用SO的降价语言表达;-).

首先,如果使用。另一方面,你为什么要限制这一行?如何知道要更新的行

您应该从
mysql\u query()
调用中报告错误,以查看到底出了什么问题。我假设
$\u SESSION['user\u id']
是一个数字?如果没有定义,查询将失败,这就是为什么您应该记录和/或报告错误SQL

$conn = mysql_connect('localhost', 'admin', 'root') or die(mysql_error());
mysql_select_db('main') or die(mysql_error());

$read = "message read";
$sql = <<<END
UPDATE inbox
SET read = `$read`
WHERE user_id = $_SESSION[user_id]
END;
mysql_query($sql) or die(mysql_error() . ': ' . $sql);
$conn=mysql\u connect('localhost','admin','root')或die(mysql\u error());
mysql_选择_db('main')或die(mysql_error());
$read=“消息读取”;

$sql=首先,如果使用。另一方面,你为什么要限制这一行?如何知道要更新的行

您应该从
mysql\u query()
调用中报告错误,以查看到底出了什么问题。我假设
$\u SESSION['user\u id']
是一个数字?如果没有定义,查询将失败,这就是为什么您应该记录和/或报告错误SQL

$conn = mysql_connect('localhost', 'admin', 'root') or die(mysql_error());
mysql_select_db('main') or die(mysql_error());

$read = "message read";
$sql = <<<END
UPDATE inbox
SET read = `$read`
WHERE user_id = $_SESSION[user_id]
END;
mysql_query($sql) or die(mysql_error() . ': ' . $sql);
$conn=mysql\u connect('localhost','admin','root')或die(mysql\u error());
mysql_选择_db('main')或die(mysql_error());
$read=“消息读取”;

$sql=为了安全起见,我建议您使用sprintf函数来传递参数

$q = sprintf("UPDATE inbox SET `read` = '%s' WHERE `user_id` = %d LIMIT 1",
                    $read, $_SESSION['user_id']); 

为了安全起见,我建议您使用sprintf函数来传递参数

$q = sprintf("UPDATE inbox SET `read` = '%s' WHERE `user_id` = %d LIMIT 1",
                    $read, $_SESSION['user_id']); 

嘿,伙计们找出了问题所在:

 $read = "message read";

 $set_statuss = "UPDATE inbox ".
            "SET readd = '".$read."' ".
            // changed $_SESSION to $_GET and the ';' after msg_id GET 
            "WHERE posted_to = '{$_SESSION['user_id']}' AND inbox_id = '".$_GET['msg_id'];."' ";

 mysql_query($set_statuss) or die(mysql_error() . $set_statuss);

谢谢大家

嘿,伙计们找出了问题所在:

 $read = "message read";

 $set_statuss = "UPDATE inbox ".
            "SET readd = '".$read."' ".
            // changed $_SESSION to $_GET and the ';' after msg_id GET 
            "WHERE posted_to = '{$_SESSION['user_id']}' AND inbox_id = '".$_GET['msg_id'];."' ";

 mysql_query($set_statuss) or die(mysql_error() . $set_statuss);

谢谢大家

我想我明白你的意思。我试着用反引号括起来,但没用。。。然后,我尝试更改表中的列名,但仍然没有任何更改:/I我想我理解您的意思。我试着用反引号括起来,但没用。。。然后我尝试更改表中的列名,但仍然无效:/