查询仅适用于PHPMyAdmin

时间:2011-09-03 22:40:52

标签: mysql

我正在尝试此查询:

//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/

我做错了什么?

3 个答案:

答案 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)。