微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于从移动应用程序的mysql服务器获取数据的PHP代码

我的PHP代码MysqL服务器获取数据以显示哪个适用于网站,但我想使用相同的方法制作移动应用程序,
它是否适用于移动应用程序?因为我在ajax调用下面使用(下面的代码).

我也可以在这里使用json,因为我需要帮助.

<?PHP
include('connect.PHP');
$filmId=$_GET['filmId'];
$sql ="SELECT *, DATE_FORMAT(filmReleaseDate, '%d %b %Y' ) filmReleaseDate FROM films where filmId ='$filmId'";
MysqLi_query("SET NAMES utf8");
$result = MysqLi_query($conn, $sql);
while($row = MysqLi_fetch_array($result))
{
    $id=$row['filmId'];
    $name=$row['filmName'];
  $year=$row['filmYear'];

echo "$name, $year";

}
MysqL_free_result($result);
MysqLi_close($conn);
?>

这是ajax代码,当我点击href它将处理上面的PHP请求以获取数据.

var xmlhttp = new XMLHttpRequest();
var url = "./searchfilmsbyname.PHP";
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        myFunction(xmlhttp.responseText);
    }
}
xmlhttp.open("POST", url, true);
xmlhttp.send();

function myFunction(response) {
    var arr = JSON.parse(response);
    var i;
    var out = "";
    for (i = 0; i < arr.length; i++) {
        out += "<li><a href ='filmdetails.PHP?filmId=" + arr[i].Id + "'>" + arr[i].Film + "</a></li>";
        if ((i + 1) == arr.length) {
            document.getElementById("searchfilmsbyname").innerHTML = out;
            $("#searchfilmsbyname").listview('refresh');
        }
    }    
}

解决方法:

我不确定它是如何在你的网站上工作的,也许你包括它而不是使用ajax,但上面代码的问题是你没有发回有效的json所以:

function myFunction(response) {
  var arr = JSON.parse(response);
  ...

将失败,因为:

$id=$row['filmId'];
$name=$row['filmName'];
$year=$row['filmYear'];

// this does not generate valid json:
echo "$name, $year";

你应该做的是将所有行添加一个数组中,并且只在结尾处输出只编码为json的数组:

$rows = array();
while($row = MysqLi_fetch_array($result))
{
    $rows[] = array('id' => $row['filmId'],
                    'name' => $row['filmName'],
                    'year' => $row['filmYear']);
}
echo json_encode($rows);

除此之外你有一个sql注入问题.您应该使用预准备语句,而不是将变量直接注入查询.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐