2012-04-01 44 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