我正在使用MySQL并在其中创建了2个表; Users
和Activity
。用户表包含以下数据:
目前我只使用上述数据。我希望这些数据以JSON格式显示,然后我将在我的Android应用程序中使用它。我试图转换它,但我得到以下结果:
(!)警告: mysqli_query()需要至少2个参数,给出1 第 18 行的D:\ xampp \ htdocs \ MobileApp \ index.php 呼叫 Stack #TimeMemoryFunctionLocation 10.0015134480 {main}()... \ index.php : 0 20.0034141920getUserName()... \ index.php : 38 30.0034142272http:// www.php.net/function.mysqli-query” target ='_ new'> mysqli_query()... \ index.php : 18
(!)警告: mysqli_fetch_array()期望参数1为mysqli_result,null 在D:\ xampp \ htdocs \ MobileApp \ index.php中给出 20 调用堆栈#TimeMemoryFunctionLocation 10.0015134480 {main}()... \ index.php : 0 20.0034141920getUserName()... \ index.php :< / b> 38 30.0050142240http://www.php.net/function.mysqli-fetch-array' target ='_ new'&gt; mysqli_fetch_array()... \ index.php : 20
{"users":[]}
我已将上述结果分为3个步骤,因此可以清楚地识别出我犯的错误。
以下是我的PHP文件:
require_once ('config.php');
function getUserName()
{
// array for json response
$response = array();
$response["users"] = array();
// Mysql select query
$result = mysqli_query("SELECT * FROM Users");
while ($row = mysqli_fetch_array($result))
{
// temporary array to create single category
$tmp = array();
$tmp["Id"] = $row["Id"];
$tmp["Name"] = $row["Name"];
// push category to final json array
array_push($response["Users"], $tmp);
}
// keeping response header to json
header('Content-Type: application/json');
// echoing json result
echo json_encode($response);
}
getUserName();
我的配置文件:
<?php
define("HOST","localhost");
define("DATABASE","app");
define("USERNAME","root");
define("PASSWORD","");
$con=mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE);
if(!$con){
die("Database Connection Error: " . mysqli_connect_error());
}
else{
echo "Connection successful";
}
我从config
获得了“连接成功”。
我不知道我在做什么错。
答案 0 :(得分:1)
问题来自您使用mysqli_query
的方式。
如错误消息mysqli_query
所述,需要两个参数。第一个是连接对象,第二个是查询。
即。 :
$result = mysqli_query($con, "SELECT * FROM Users");
然后,使用json_encode()
php函数构建这样的json数据。
require_once ('config.php');
function getUserName()
{
// defines global since $con not in the scope of the function variables
global $con;
$response = array();
while ($row = mysqli_fetch_array($result))
{
// temporary array to create single category
$tmp = array();
$tmp["Id"] = $row["Id"];
$tmp["Name"] = $row["Name"];
// build response array
$response['users'][] = $tmp;
}
// convert $response array to json and return it
return json_encode($response);
}
// get function return
$users_name = getUserName();
希望它有所帮助。
答案 1 :(得分:0)
在sql Query
之后添加此行$sql="insert sql query";
$res=mysqli_query($con,$sql);
添加while循环使用此
$row=mysqli_fetch_array($res)
<?php
require_once ('config.php');
$result= "SELECT * FROM Users";
$res=mysqli_query($con,$result);
$response = array();
while ($row=mysqli_fetch_array($res)){
array_push($response,array('Id' =>$row['Id'] ,
'Name' =>$row['Name']
// add element on your array
));
}
echo json_encode(($response));
mysqli_close($con);
?>
将config和php文件放在同一个文件夹中