从php发送json数据
我对Php完全陌生,我正在尝试将json数据从Php发送到android。我有以下Php代码从数据库读取值:从php发送json数据,php,json,Php,Json,我对Php完全陌生,我正在尝试将json数据从Php发送到android。我有以下Php代码从数据库读取值: <?php $con=mysql_connect("localhost","root",""); if(! $con) { die('Connection Failed'.mysql_error()); } mysql_select_db("registration",$con); $name="Adam";//$_POST["name"]; $password
<?php
$con=mysql_connect("localhost","root","");
if(! $con)
{
die('Connection Failed'.mysql_error());
}
mysql_select_db("registration",$con);
$name="Adam";//$_POST["name"];
$password="charles";//$_POST["password"];
$sql="SELECT * FROM users WHERE name='$name'and password='$password'";
$result=mysql_query($sql, $con);
while($row = mysqli_fetch_array($result))
{
$details= array(
'name' => $row['name'],
'password' => $row['password'],
);
array_push($json, $bus);
}
$jsonstring = json_encode($json);
echo $jsonstring;
mysql_close();
?>
如果我没有弄错JSON数据。
但这给了我一个错误:
mysqli_fetch_array() expects parameter 1 to be mysqli_result, resource given in...
而且
Undefined variable: json in...
有人能告诉我您使用
mysqli\u-fetch\u数组时可能出现的错误是什么吗。您需要使用mysql\u fetch\u array
但是,mysql_*函数不应该再使用了
还有另一个错误:
array_push($json, $bus); // i believe $bus should be replaced with $details
像这样试试
$result=mysql_query($sql, $con);
$json = array();
while($row = mysql_fetch_array($result))
{
$json[]= array(
'name' => $row['name'],
'password' => $row['password']
);
}
$jsonstring = json_encode($json);
echo $jsonstring;
mysql已经被弃用,当您可以使用mysqli或PDO时,我认为您应该检查变量$result(var_dump())的内容;事实上,如果没有定义结果,您的程序将不会进入循环,并且$JSON将不被定义。 < P>除了山姆和PITCHNENT建议的更改之外,还考虑添加PHP报头将内容类型设置为JSON/P>
header('Content-type: application/json');
也就是说,如果您使用android远程请求json信息未定义变量:json
是因为您试图执行数组_推送($json,$bus),但$json不存在
你应该先申报
$json = Array();
mysql错误很可能是因为您混合了mysql和mysqli模块而导致的
仅使用mysqli
$con=mysqli_connect("localhost","root","");
mysql_select_db("registration",$con);
...
$result=mysql_query($sql, $con);
另外,以纯文本形式存储密码通常是个坏主意。至少考虑使用哈希函数。 1。您正在使用mysql\u*
和mysqli\u*
(选择一个,然后请选择mysqli:)。2. <代码>$json
没有在任何地方定义(您应该在上面用$json=array();
定义它)。3. <代码>$bus
未在任何地方定义-您的意思是$details
?4.请熟悉SQL注入(),您能告诉我上面的错误吗
$con=mysqli_connect("localhost","root","");
mysql_select_db("registration",$con);
...
$result=mysql_query($sql, $con);