簡體   English   中英

mysql_query不起作用

[英]mysql_query doesn't works

我得到以下代碼:

set @row_num = 0;
SELECT @row_num := @row_num + 1 as row_number,id,name,salary 
FROM employee
ORDER BY salary;

這與mySQL完美配合。 問題來了,當我嘗試使用mysql_query()函數通過PHP執行時。 它給了我這個錯誤:

您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊,以在'附近使用正確的語法; 在第1行上選擇@row_num:= @row_num + 1 as,id,name'

我知道,問題來自SET @ROW_NUM ,但是我需要知道為什么它可以在MYSQL中工作,而不是在PHP上工作。 我不能使用任何其他代碼,此代碼是正確的,並且可以工作,但不適用於PHP。 關於為什么在PHP上不起作用的任何建議?

謝謝

因為它們被視為兩個查詢,所以您不能以這種方式將其作為一個查詢來運行,但是可以這樣做:

SELECT @row_num := @row_num + 1 as row_number,id,name,salary 
FROM employee, (SELECT @rum_num :=0 ) AS t
ORDER BY salary;

並且請停止使用mysql_query ,而改用PDO

PHP手冊

mysql_query()將唯一查詢(不支持多個查詢 )發送到與指定的link_identifier關聯的服務器上當前活動的數據庫。

您的查詢字符串包含兩個查詢,因此無法使用mysql_query()調用它。

此外,您應注意,PHP mysql_xxx()函數已過時且已棄用-再次,請參見手冊頁以獲取更多信息。

因此,最好的解決方案是切換到支持您所需功能的更現代的數據庫API。 在PHP中,您有兩個選擇: mysqliPDO 我建議使用PDO,因為它更靈活,但是如果您已經習慣使用舊的mysql函數,則mysqli更易於使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM