2013-10-19 44 views
0

說我有一些類似的mysql數據庫,其中一個表由用戶組成,我想查詢,而特定表的名稱也是可變的。bash在cmdline中使用mysql中的變量

我會說我需要類似的東西,但它給了我一時間難以得到分辯引號:

user_id = $(mysql --user=$dba --password=$dbp $dbn -e "SELECT id FROM ${user_tbl} WHERE username = \"guest\"")

增加: 好了,現在知道什麼是初始查詢應該是,來另一個問題是,如何使用tabelname的變量再次更新字段。

mysql --user=$dba --password=$dbp $dbn -e "UPDATE ${user_tbl} SET password=${pass} WHERE username = 'guest'"
提供了以下錯誤: 未知列 'some_encrypted_pa​​ss' 在 '字段列表'

+0

'... WHERE username =「guest」'在任何SQL中都無效。簡單地說,一個有效的SQL將立即解決你的問題。 '...用戶名='guest'' – janos

回答

1
user_id=$(mysql --user=$dba --password=$dbp $dbn -e "SELECT id FROM ${user_tbl} WHERE username = 'guest'") 

你應該使用單引號搜索字符串guest

btw,你爲什麼使用這種方法,只需運行mysqli_query並在數組[獲取方法]中獲取值?這會更好,更安全可靠。

+0

謝謝。一直嘗試如此多的雙引號組合,帶有或不帶有反斜槓的單引號,幾乎失去了我的視線。 – slibbe

+1

使用mysqli_query會使用PHP的權利? – slibbe

+0

是的,我以爲你使用PHP代碼,我的壞。但是如果你知道的話,你可以使用PHP進行簡單的編碼。 –