2012-04-01 43 views
0
$division = array("5a7","8a10","11a12","13","14","15","16a17"); 

$number = $division[array_rand($division)]; 

這是我從數組中獲取一個隨機數的代碼。哪些工作正常。然而,我然後在MySQL服務器的select命令中使用$ number變量,它說查詢失敗:'where子句'中的未知列'11a12'。但是11a12是我列中的一個值。奇怪的是,當隨機值是13或14時,它工作正常。php變量不匹配mysql列

$query = 'SELECT * FROM teams WHERE league ='.trim($number); 

回答

3

將其用引號括起來。

$query = "SELECT * FROM teams WHERE league = '{$number}'"; 

非引號中的數字值被MySQL解釋爲實體名稱。在上下文中,MySQL會希望實體名稱是列的名稱。

+0

謝謝。這很好。 – user541597 2012-04-01 04:11:49

+0

沒問題。順便說一下,我假設你的字符串是從字面上來的。如果他們不是(我不得不懷疑,因爲如果修剪是無用的),那麼你應該通過mysql_real_escape_string傳遞數字。 – Corbin 2012-04-01 04:13:07