執行與設置查詢我tryed執行此查詢:使用錯誤由PHP MySQL的
$q = "SET @userId := (SELECT user_id
FROM users
WHERE user_email='$userEmail'
AND user_token='$userToken');
SELECT stock_name, stock_description, stocks.stock_id, stock_owner_id,
stock_creation_date, stock_last_mod_date, stock_num_item_to_buy,
stock_distance_to_buy, stock_num_allowed_items, tab.user_role
FROM stocks
INNER JOIN
(SELECT stock_id, user_role
FROM user_stock
WHERE user_id = @userID) tab
ON tab.stock_id=stocks.stock_id
WHERE stocks.stock_id='$stockId'
UNION ALL
SELECT * , 'owner' as user_role
FROM stocks
WHERE [email protected] AND stocks.stock_id='$stockId';";
:
$mysqli->query ($q);
,但結果是這樣的錯誤:
You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax
to use near 'SELECT stock_name, stock_description, stocks.stock_id,
stock_owner_id, st' at line 5
如果我嘗試使用相同的查詢PhpMyAdmin或MySQLWorkbrench所有工作正常...
...但通過PHP我仍然有這個錯誤。我也嘗試使用:
$mysqli->multi_query ($q);
但結果是一樣的(說實話,我也不能得到在這種情況下的錯誤信息)。
如果我刪除第一部分(變量的SET)查詢也可以通過PHP正常工作,我不能承認什麼是問題!
請幫幫我!編輯====================== ============================ 感謝@suchit,我剛剛在var名稱中看到了錯誤,但在糾正之後也是如此錯字!
我看到,如果我使用一個;在SQL語句中,PHP的工作原理與PhpMyAdmin不同,即相同的查詢可以正常工作,但如果我仍然使用mysqli_multi_query,問題仍然存在。
唯一的解決方案就是推出兩種不同的查詢@Barmar說,謝謝!
我只會添加:mysqli_multi_query的用法是什麼?!我查了一下手冊,但是我看到使用會做更多的查詢,但爲什麼不適合我?
分號'AND user_token ='$ userToken');'''AND user_token ='$ userToken')' – 2014-08-28 00:28:20
我認爲'owner'是他想要user_role的字符串。 – 2014-08-28 00:30:34
@suchit編輯。它可能是分號,肯定是關於它的一些東西。 – 2014-08-28 00:32:13