[英]Trying to return true or false from SQL
Here is my code: 这是我的代码:
$result_username = mysqli_query($dbconnection, Data::checkForUsername($username));
It then goes here: 然后转到这里:
public static function checkForUsername($username) {
global $database;
$query = "
SELECT COUNT(*)
FROM users
WHERE username='{$username}';";
$result = $database -> query($query);
return $result;
}
Then $result does this: 然后$ result这样做:
if (mysqli_result($result_username, 0) > 0) {
However, it then gives me back a Resource_Id?? 但是,它然后给了我一个Resource_Id? I can not figure out why? 我不知道为什么?
I simply want to check if the username exists in at least 1 row. 我只想检查用户名是否至少存在1行。
You need to fetch your data after you execute your query 执行查询后,您需要获取数据
$row = $result->fetch_array(MYSQLI_NUM);
return $row[0];
UPDATE: Now, using prepared statement your function can look like this: 更新:现在,使用准备好的语句,您的函数可以如下所示:
public static function checkForUsername($username) {
global $database;
$result = 0;
$query = "SELECT COUNT(*) FROM users WHERE username=?";
/* create a prepared statement */
if ($stmt = $database->prepare($query)) {
/* bind parameters for markers */
$stmt->bind_param("s", $username);
/* execute query */
$stmt->execute();
/* bind result variable */
$stmt->bind_result($result);
/* fetch value */
$stmt->fetch();
/* close statement */
$stmt->close();
}
return $result;
}
You can try 你可以试试
return $result->num_rows
Then 然后
if (checkForUsername('Redeyes') != 0) {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.