php在尝试获取MySQL数据时返回空GET阵列
问题描述:
我正在尝试为我的移动后端与MySQL数据库交互创建一个php REST API。我已经写了下面的代码,试图从中检索MySQL查询数据:php在尝试获取MySQL数据时返回空GET阵列
<?php include "FILE WITH DB_INFO"; ?>
<html>
<body>
<h1>Testing page</h1>
<?php
$connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);
if (mysqli_connect_errno()) echo "Failed to connect to MySQL" . mysqli_connect_error();
$database = mysqli_select_db($connection, DB_DATABASE);
if (strlen($username_query)) {
doesUsernameExist($connection, $username_query);
}
doesUsernameExist($connection, $username_query);
$username_query = $_GET['usernameToQuery'];
echo($_GET['usernameToQuery']);
function doesUsernameExist($connection, $username) {
$u = mysqli_real_escape_string($connection, $username);
$query = "SELECT username from users WHERE username = ('$u');";
if (!mysqli_query($connection, $query)) {
$response = array("success" => false, "message" => mysqli_error($connection), "sqlerrno" => mysqli_errno($connection), "sqlstate" => mysqli_sqlstate($connection));
echo json_encode($response);
} else {
$sth = mysqli_query($connection, $query);
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
$rows[] = $r;
}
$response = array("success" => true);
echo json_encode($rows);
}
}
?>
这是实际的请求是什么样子:http://my_ec2_instance/DoesUsernameExist.php?usernameToQuery=lmao
。 这是通过POSTMAN发送的。
由于我使用的MySQL数据库包含值为lmao
的用户名,PHP函数应返回非空数组。但json_encode($rows);
行返回空数组[]
。我究竟做错了什么。
看样子你调用'doesUsernameExist()'两次,一次一个'if'语句中,一旦外界将这个你行之后。在这两种情况下,我都看不到为“$ username_query”赋值的位置。我对吗? – JBH
@JBH无论回声应该输出的值。 @ Mr.Man检查你实际发送了一个GET请求,而不是POST。确保您的数据格式良好,等等......您还可以使用'print_r($ _ GET)' – Geoffrey
'$ _Get ['usernameToQuery']'查看整个'$ _GET'数组到'$ username_query'。还是我没有以正确的方式做到这一点? –