PHP+;MYSQL:更新查询有问题
运行此查询时遇到问题。我不断发现错误: 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“read=”readd'附近使用的正确语法,其中user_id='1'LIMIT 1' 代码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
$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我想我理解您的意思。我试着用反引号括起来,但没用。。。然后我尝试更改表中的列名,但仍然无效:/