应用程序中的mysql查询结果与网站、Swift+PHP不同

应用程序中的mysql查询结果与网站、Swift+PHP不同,php,mysql,ios,xcode,swift,Php,Mysql,Ios,Xcode,Swift,当使用我的应用程序时,我从MySQL查询中得到的结果与仅使用URL得到的结果不同 以下内容访问数据库并显示包含$\u GET值的任何用户名的用户名和用户ID,通过URL访问时效果良好,但从我的应用程序调用时,显示数据库中的所有用户 服务器端: <?php require("lib.php"); header('Content-type: application/json'); $username = $_GET['search']; $search = "%$username%"; $re

当使用我的应用程序时,我从MySQL查询中得到的结果与仅使用URL得到的结果不同

以下内容访问数据库并显示包含$\u GET值的任何用户名的用户名和用户ID,通过URL访问时效果良好,但从我的应用程序调用时,显示数据库中的所有用户

服务器端:

<?php
require("lib.php");
header('Content-type: application/json');
$username = $_GET['search'];
$search = "%$username%";
$result = query("SELECT username, userID FROM user_accounts WHERE username LIKE '%s'", $search);
if (!$result['error']) {
    if (count($result['result'])>0) {
        class Emp {
            public $success = "";
            public $result = "";
        }
        $e = new Emp();
        $e->success = 1;
        $e->result = $result['result'];
        echo json_encode($e);

    } else {
        echo '{"success":0,"error_message":"No users found"}';
    }
} else {
    echo '{"success":0,"error_message":"Connection error"}';
}
?>

这是因为在你的应用程序中你发布了搜索查询,所以它是POST变量。使用此选项可同时允许post和get:

$username = $_REQUEST['search'];

非常有魅力,谢谢:未来读者注意:如果查询只是在内部使用sprintf,那么此代码就有SQL注入漏洞。始终使用最新的库绑定变量。
$username = $_REQUEST['search'];