2012-09-29 84 views
1

我试图从名为say的表中选择一列,1234php SELECT查询适用于值,但不适用于变量

 $query="select Number from `$table`"; 
     $contacts=mysql_query($query); 

     while($row=mysql_fetch_array($contacts)) 
     echo $row['Number']; 

如果我使用“从1234选择号码”,它的工作原理。 $ table的值是使用$ _REQUEST [“key0”]得到的。我将该页称为"localhost/page_id=22?key0=1234"问题是什么?我碰到下面的错误在mysql_fetch_array声明:Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\wp-content\plugins\exec-php\includes\runtime.php(42)

+0

你是否回应'$ table'的价值?另外,请仔细阅读SQL注入。你创建查询的方式非常不安全 - http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain。 – JohnP

+0

我也试着回应它。它甚至不打印该值。 – venkatKA

+1

这意味着你没有价值。如果它没有打印,那么该值不会被填充。另外,如果你得到这个错误,这意味着你的mysql_connect调用没有正确完成 – JohnP

回答

2

你调用的URL的格式应该是这样的:

localhost/?page_id=22&key0=1234 

此外,1234是表一个奇怪的名字:))

+0

谢谢。现在,回显$表的作品。但警告仍然存在,并且查询已经执行。 – venkatKA

+0

检查数据库中是否存在'Number' [带有大写N!]字段和'1234'表。尝试在你选择/ phpmyadmin的mysql客户端运行查询来读取sql错误。 – moonwave99

0

写这样"select Number from ".$table;

+0

Nope这不起作用 – venkatKA

+0

看看$表中的值是否正确。 –

0

$contacts是什么从您的查询返回,它将返回false如果你有某种类型的错误。 所以:

  1. 你可能没有一个表中的错误(阅读的try-catch)被称为1234在FROM子句中ü必须使用现有元素/表从数据库(或临时表由此产生)
  2. SQL注入的好运气。
0
$conn=mysql_connect("localhost","root",""); 
mysql_select_db("as you wish",$conn); 
$query="select Number from `$table`"; 
     $contacts=mysql_query($query,$conn); 

     while($row=mysql_fetch_array($contacts)) 
     echo $row['Number']; 

试试这个

0

这将肯定工作。

"SELECT * 
    FROM `yourdatabase_name`.`$table` " 
+0

解释,你为什么这么肯定?如果以前没有选择数据库,它就可以工作,但这不是问题的明显原因。有一件事是肯定的,这解决了未选中的数据库问题,仅此而已。 – Wh1T3h4Ck5

0

我认为你必须使用类似这样

本地主机/?PAGE_ID = 22 & KEY0 = 1234,但在你的问题你提到你正在使用本地主机/ PAGE_ID = 22?KEY0 = 1234所以试试我在这里提到的!

希望它能帮到你

相关问题