我想知道是否這個MySQL的語句將被正確執行,這是MySql查詢語句正確嗎?
"SELECT sum(price) FROM products WHERE productid IN (SELECT productid FROM shoppingcart WHERE sessionid=".$this->$sessionid.")"
如果不是,請給我指點,以我錯在何處。
感謝
我想知道是否這個MySQL的語句將被正確執行,這是MySql查詢語句正確嗎?
"SELECT sum(price) FROM products WHERE productid IN (SELECT productid FROM shoppingcart WHERE sessionid=".$this->$sessionid.")"
如果不是,請給我指點,以我錯在何處。
感謝
我敢肯定你的意思
$this->sessionid
不
$this->$sessionid
(第二個返回的屬性值,其名稱都存儲在會話ID,因此,當$會話ID是 'ABCDEF'它試圖返回$ this-> abcdef屬性的值)。
另外,在'AND中轉義所有參數。
"SELECT sum(price) FROM products WHERE productid IN (SELECT productid FROM shoppingcart WHERE sessionid='".mysql_escape_string($this->sessionid)."')";
+1沒有抓住那一個。 – 2010-05-26 09:33:36
感謝您的糾正 – 2010-06-03 10:43:58
我使用SQL服務器,但我認爲錯誤在這裏是
單引號'需要會話ID
"SELECT sum(price) FROM products WHERE productid IN (SELECT productid
FROM shoppingcart WHERE sessionid='".$this->$sessionid."')"
似乎沒什麼問題。
正如@praynay所說,我相信你需要引用會話id。
此外,要非常,非常肯定$this->sessionid
不會有一個引號字符本身,或者你將它傳遞到MySQL之前正確轉義。 (或者更好的是,使用參數化查詢。)
我假設你使用PHP,是否正確? – nothrow 2010-05-26 09:33:26
是的,我正在使用它 – 2010-05-26 09:49:34