我正在尝试此查询:
//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'];
}
不打印任何内容,从PHPMyAdmin运行SELECT * FROM Items WHERE Site = 'http://rollingstone.com/'
返回一行。
我确信它一定是非常基础的,因为我没有太多的MySQL经验。
我在这里尝试btw:http://www.chusmix.com/game/insert/get-items.php?site=http://rollingstone.com/
我做错了什么?
答案 0 :(得分:2)
确保$site
实际包含某些内容;在echo $site
之前快速mysql_query()
告诉你这件事。如果它为空,请尝试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
。这是所有错误检测代码;你错误的原因并不明显,所以使用上述方法(以及你能想到的任何方法)都需要进行一些调查。
答案 1 :(得分:0)
您是否先在连接上调用了mysql_select_db('your_database_name');
?您是否尝试在执行之前回显SQL以确认该网站是您期望的那样?
答案 2 :(得分:0)
$query = sprintf("SELECT * FROM Items WHERE Site ='%s'",
mysql_real_escape_string($site));
$result = mysql_query($query);
为了安全起见(避免SQL Injections)。