我想知道这个MySql语句是否会正确执行,
"SELECT sum(price) FROM products WHERE productid IN (SELECT productid FROM shoppingcart WHERE sessionid=".$this->$sessionid.")"
如果没有,请指出我错在哪里。
由于
答案 0 :(得分:1)
我正在使用sql server,但我认为这里的错误是
会话ID 需要单引号'
"SELECT sum(price) FROM products WHERE productid IN (SELECT productid
FROM shoppingcart WHERE sessionid='".$this->$sessionid."')"
答案 1 :(得分:1)
我确定你的意思
$this->sessionid
不是
$this->$sessionid
(第二个返回property的值,该名称存储在sessionid中,因此,当$ sessionid为'abcdef'时,它会尝试返回$ this-> abcdef属性的值)。
另外,在'AND中包含所有参数。
"SELECT sum(price) FROM products WHERE productid IN (SELECT productid FROM shoppingcart WHERE sessionid='".mysql_escape_string($this->sessionid)."')";
答案 2 :(得分:0)
对我来说似乎很好。
答案 3 :(得分:0)
正如@praynay所说,我相信你需要在会话ID周围引用。
此外,非常非常确定 $this->sessionid
本身没有引用字符 ,或者在将其传递给MySQL之前将其正确转义。 (或者更好的是,使用参数化查询。)