2013-08-22 42 views
-3

我使用这个代码来从数据库中的数据并将其转换成JSON如何从MySQL获取数据作为json数据?

<?php 
$username = "root"; 
$password = ""; 
$hostname = "localhost"; 

//connection to the database 
$dbhandle = mysql_connect($hostname, $username, $password , "test") 
    or die("Unable to connect to MySQL"); 
echo "Connected to MySQL<br>"; 

//json 



$query = mysql_query("SELECT * FROM location"); 
$json_output = array(); 
while($row = mysql_fetch_assoc($query)){ 
    $json_output[] = json_encode($row); 
} 
echo json_encode($row); 
?> 

但IAM得到错误的警告:mysql_fetch_assoc()预计参数1是资源,布尔在C中给出:\ WAMP \ WWW \ js.php on line 17

第17行是while($ row = mysql_fetch_assoc($ query))。

请帮助我解决这个问题。

+0

这意味着您的查询失败,并且mysql_query返回布尔值false。你还没有选择一个数据库,也许这就是为什么。 – Maerlyn

+0

看起来你试图在'mysql_connect()'的参数中指定数据库。但是这个函数并不需要数据库参数,你用'mysqli_connect()'来混淆它。 – Barmar

回答

1

改变最后行:

$query = "SELECT * FROM location"; 
$result = mysql_query($query); 

while($row = mysql_fetch_assoc($result)){ 
    $json_output[] = $row; 
} 
echo json_encode($json_output); 

但你不应该使用mysql *不管怎么说,它的弃用。

+0

这是正确的,但它与他得到的错误无关。 – Barmar

+0

它有。它引入了错误消息抱怨的缺失资源。 – ciruvan

+0

不,它不。如果他添加了你的代码,'$ result'将包含'false',就像'$ query'在他原来的代码中一样。他需要调用'mysql_select_db()'来修复它。 – Barmar