【问题标题】:Unable to get the records from php script to android app无法从 php 脚本获取记录到 android 应用程序
【发布时间】:2016-06-14 13:28:22
【问题描述】:

我正在使用 android volley 库从服务器上的数据库中获取记录。我从我的 android 应用程序向这个 php 脚本发送一个查询。当我自己在第 4 行编写查询时,如下 $myquery = "Select firstname from Student;";那么所有结果都会正确返回,但是当我直接发送查询时,它不会返回记录。我确定问题出在 php 脚本中,请帮助我在这个基本脚本中哪里出错了?

function showStudent()
{
    global $connect;
    $myquery = $_POST["query"];

    $result = mysqli_query($connect,$myquery);
    $number_of_rows = mysqli_num_rows($result);

    $temp_array = array();

    if($number_of_rows>0)
    {
        while( $row = mysqli_fetch_assoc($result) )
        {
            $temp_array[] = $row;
        }
    }

    header('Content-Type: application/json');
    echo json_encode(array("dataArray"=>$temp_array));
    mysqli_close($connect);
}
?>

【问题讨论】:

  • 您确定要通过用户输入接收查询吗??
  • 实际上我已经创建了一个通用类供我使用,我只是在不同的类中更改查询,这就是为什么我将不同的查询发送到同一个脚本
  • 您可能想要记录 $myquery 的内容以检查它是否正确。做类似 file_put_contents('/tmp/log', $myquery);
  • 我明白了...但这也会使您的服务器容易受到查询攻击。想象一下有人发送类似 "DROP TABLE students""INSERT INTO users (login, password, is_admin) VALUES ('h4ck3r', '...', 1)"我> 。请记住,脚本调用并不难跟踪,用户可以通过浏览器控制台轻松输入值
  • @CarlosCarucce 实际上我想通过这个脚本做的是基于查询获取记录,所以如果我硬编码编写查询,那么我会编写许多脚本,例如一个用于选择所有记录的脚本,一个脚本用于根据“where”条件等获取记录。这就是为什么我有兴趣通过我的 android 应用程序发送查询并在 php 应用程序中接收它,这样只有这个脚本才能完成从数据库中获取记录的工作跨度>

标签: php android mysql android-volley


【解决方案1】:

改成这个

$myquery = $_REQUEST['query'];

不是这个

$myquery = $_POST["query"];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多