我通过这个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);
?>
我看到的可能是一些愚蠢的错误,但我被困在它上的时间超过了我应该的时间!提前感谢任何反馈
答案 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()
内部是你的伎俩,因为它们都使用不同的内部计数器。