我正在尝试这个查询:
//connect;
$site = mysql_real_escape_string($_GET['site']);
$data = mysql_query("SELECT * FROM Items WHERE Site = '$site'");
while($row = mysql_fetch_array( $data ))
{
print $row['type'];
}
不打印任何内容,正在运行 SELECT * FROM Items WHERE Site = 'http://rollingstone.com/'
从 PHPMyAdmin 返回一行。
我确信这一定是非常基本的东西,因为我对 MySQL 没有太多经验。
顺便说一句,我正在这里尝试:http://www.chusmix.com/game/insert/get-items.php?site=http://rollingstone.com/
我做错了什么?
最佳答案
确保$site
确实包含某些内容;在 mysql_query()
之前快速执行 echo $site
应该会告诉您这一点。如果为空,请尝试 print_r($_GET)
看看它是否在 $_GET
数组中。应该是,但也可能不是因为其他原因;检查此代码段上方的任何代码是否以任何方式修改 $_GET
或 $_REQUEST
。
要从 MySQL 表请求数据,您需要使用 mysql_connect()
连接到服务器,然后选择带有 mysql_select_db()
的数据库。 PHP 应该抛出错误,但要确保将这些行放在脚本的顶部:
error_reporting(E_ALL);
ini_set('display_errors', '1');
现在将显示所有错误。
此外,您还可以使用 mysql_num_rows()
测试返回的行数。例如:
if(mysql_num_rows($data) !== false)
{
while(...)
{
...
}
}
else
{
echo "No rows";
}
如果查询没有任何结果,将回显No rows
。这是所有错误检测代码;错误原因并不明显,因此需要使用上述方法(以及您能想到的任何其他方法)进行一些调查。
关于mysql - 查询仅适用于 PHPMyAdmin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296301/