开发者

Query only working on PHPMyAdmin

I'm trying this query:

//connect;

$site = mysql_real_escape_string($_GET['site']);

$data = mysql_query("SELECT * FROM Items WHERE Site = '$site'");

while($row = mysql_fetch_array( $data )) 
 开发者_如何学Python   { 
    print $row['type'];
    }

doesn't print anything, running SELECT * FROM Items WHERE Site = 'http://rollingstone.com/' from PHPMyAdmin returns one row.

I'm sure it must be something really basic, since I haven't got much experience with MySQL.

I'm trying it here btw: http://www.chusmix.com/game/insert/get-items.php?site=http://rollingstone.com/

What am I doing wrong?


Make sure $site actually contains something; doing a quick echo $site before your mysql_query() should tell you this. If it's empty, try print_r($_GET) to see if it's in the $_GET array. It should be, but it might not for some other reason; check any code above this snippet for stuff that modifies $_GET or $_REQUEST in any way.

To request data from a MySQL table, you need to connect to the server using mysql_connect(), then select the database with mysql_select_db(). PHP should throw errors, but to be sure put these lines at the top of your script:

error_reporting(E_ALL);
ini_set('display_errors', '1');

All errors will now be shown.

In addition, you can also test for how many rows that were returned using mysql_num_rows(). For example:

if(mysql_num_rows($data) !== false)
{
    while(...)
    {
        ...
    }
}
else
{
    echo "No rows";
}

Will echo No rows if there weren't any results from the query. This is all error detection code; the cause of your error isn't obvious, so a little investigation is necessary, using the above methods (and any more you can think of).


Have you called mysql_select_db('your_database_name'); on the connection first? Have you tried echoing out the SQL before it's executed to confirm that Site is what you expect it to be?


$query = sprintf("SELECT * FROM Items WHERE Site ='%s'",
   mysql_real_escape_string($site));
$result = mysql_query($query);

Just to be on the safe side (avoid SQL Injections).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜