当我运行此代码时,一切正常:
<?php
$con = mysqli_connect ("", "", "", "") or die ($connect_error);
$username = 'tijmen';
$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
$result = mysqli_fetch_row($query);
echo $result[0];
?>
我的数据库中存在用户名'tijmen',因此echo返回'1'。
我接下来尝试的是:
$con = mysqli_connect ("", "", "", "") or die ($connect_error);
function user_exists($username) {
$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
$result = mysqli_fetch_row($query);
return ($result[0] == 1) ? true : false;
}
if (user_exists('tijmen') === true) {
echo 'user exists';
}
else {
echo 'not found';
}
当我运行此代码时没有任何反应,我不知道为什么。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
您的功能中没有$con
。
替换此行:
if (user_exists('tijmen') === true) {
by:
if (user_exists('tijmen',$con) === true) {
并在您的函数中:
function user_exists($username,$con) {
$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
$result = mysqli_fetch_row($query);
return ($result[0] == 1) ? true : false;
}
答案 1 :(得分:1)
在较低的代码中,您忘记为查询声明变量:
添加$ username ='tijmen';在开始和完成时你的功能:
function user_exists($username) {
$username = 'tijmen';
$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
$result = mysqli_fetch_row($query);
return ($result[0] == 1) ? true : false;
}
答案 2 :(得分:1)
function user_exists($username,$con) {
$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
$result = mysqli_fetch_row($query);
return ($result[0] == 1) ? true : false;
}
你必须将连接传递给函数,函数不知道在它之外定义的变量。
如果您运行代码,则应该收到错误。
答案 3 :(得分:1)
该函数无法看到变量$ con。试试这个
function user_exists($username) {
global $con;
$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
$result = mysqli_fetch_row($query);
return ($result[0] == 1) ? true : false;
}
答案 4 :(得分:1)
这不是最好的做法,但你也可以使用$ con作为全局变量,通过声明你的函数:
全球$ con;
上详细了解相关信息