2013-10-04 67 views
1

我有一個ssh圖層。從那我要通過MySQL shell獲取數據。但是,當我使用選擇函數內的where子句。它說,波紋管的錯誤消息未知列丟失WHERE子句mysql命令行

echo $ssh->exec("mysql -ppass -u root xxxx -e 'select * from `student_master` where `SM_ID` =802350570V'"); 

這是說

ERROR 1054 (42S22) at line 1: Unknown column '802350570V' in 'where clause' 

有什麼問題?

+0

'802350570V'是varchar數據類型,所以你需要用qoutation –

+0

到封閉他們檢查我的回答 –

回答

2

在這裏,你是通過你的查詢作爲參數,以便與'包裹查詢,但要確保你添加轉義序列包裹查詢與'

您應該使用"以包裝不是int類型的列值。

請嘗試以下操作:

`echo $ssh->exec("mysql -ppass -u root xxxx_col-b -e 'select * from student_master where SM_ID =\"802350570V\"'");` 
+0

終於你的更新運行良好 – underscore

+1

他得到了我的主意.. –

+0

@DrixsonOseña我如何把這個作爲變量802350570V? – underscore

2

您的SM_ID = 802350570V'中沒有單引號(')。它應該是這樣的:

echo $ssh->exec("mysql -ppass -u root esoftcar_col-b -e 'select * from `student_master` where `SM_ID` = \"802350570V\"'"); 
+0

慶典:-c:0行:意外的EOF而尋找匹配'」 'bash:-c:第1行:語法錯誤:文件意外結尾 – underscore

+0

檢查我的更新。 –

+0

bash:student_master:未找到命令bash:SM_ID:找不到命令錯誤1064(42000)在第1行:您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,在第1行'where ='802350570V''附近使用正確的語法。 – underscore