使用php脚本连接数据库,但不返回任何值

时间:2016-02-16 23:01:42

标签: php mysql

我通过这个php脚本成功连接到数据库,但即使连接了它也没有返回任何值。我正在我的网络浏览器上检查结果,它只是返回一个空白屏幕。我使用相同的脚本(不同的查询)来访问数据库中的其他两个表,它们都工作正常。这是我的代码:

<?php
$username = "xx"; 
$password = "xxx";   
$host = "xxxxx";
$database="xxxxx";

$server = mysql_connect($host, $username, $password);
$connection = mysql_select_db($database, $server);

$myquery = "SELECT `AUTHOR`, `In_order` from `authors`";

$query = mysql_query($myquery);

if ( ! $query ) {
    echo mysql_error();
    die;
}

$data = array();

for ($x = 0; $x < mysql_num_rows($query); $x++) {
    $data[] = mysql_fetch_assoc($query);
}

echo json_encode($data);     

mysql_close($server);


?>

我看到的可能是一些愚蠢的错误,但我被困在它上的时间超过了我应该的时间!提前感谢任何反馈

2 个答案:

答案 0 :(得分:0)

尝试在一些数据上本地代码,它返回一切正常。 我需要更改选择以匹配我的数据

所以我95%确定问题出在你的查询/数据库设置中。

我首先要检查数据库中的列是否真的被称为AUTHOR和'In_order',并带有正确的大写字母。

MySql名称可能区分大小写,具体取决于您的数据库服务器设置,这可能是问题

Sidenote :如果你可以研究mysqli和pdo来连接数据库而不是不推荐使用的mysql。

答案 1 :(得分:0)

试试这个:

$myquery = "SELECT `AUTHOR`, `In_order` from `authors`";
$query = mysql_query($myquery);
$num = mysql_num_rows($query);
var_dump($query);
var_dump($num);
echo mysql_error();

告诉我们这一切。

修改:好的,所以表格中有231行,var_dump($num)表示。现在让我们尝试最后得到它们,但是以更有效的方式:

while ($row = mysql_fetch_assoc($query)) {
    $data[] = $row;
}
echo json_encode($data);

我觉得你的“for”循环和mysql_fetch_assoc()内部是你的伎俩,因为它们都使用不同的内部计数器。