以下PHP代码完美运行:
<?php
// AJAX check for email availability (against database)
if(isset($_POST["email"])){
$email = $_POST["email"];
$sql = "SELECT id FROM users WHERE email='$email' LIMIT 1";
$query = mysqli_query($dbc, $sql);
$check = mysqli_num_rows($query);
if($check < 1){
echo '1';
exit();
}else{
echo '0';
exit();
}
}
?>
但是我最终需要这几段代码,所以我把它拿到了函数中:
<?php
function checkE($email){
$sql = "SELECT id FROM users WHERE email='$email' LIMIT 1";
$query = mysqli_query($dbc, $sql);
$check = mysqli_num_rows($query);
if($check < 1){
return 1;
}else{
return 0;
}
}
?>
第一段代码每次都能完美运行,但第二个函数只返回&#34; 1&#34;,也就是说它永远不会在数据库中找到匹配项(或$check
总是小于1),即使在比较一封否则会被第一位代码捕获的电子邮件时。
我尝试从第二个函数回显$check
,它只打印出一个空格。代码基本相同,除了在{1}中分配$email
。
我是否只是厌倦了并且在功能中遗漏了一些明显的东西?
如果需要:
$dbc = mysqli_connect($db_host, $db_username, $db_pass, $db_name);
答案 0 :(得分:2)
将$ dbc添加到您的函数参数中,如下所示:
function checkE($email,$dbc){
然后像这样调用你的函数:
checkE('horse@horseman.horse',$dbc);
你现在没有传递$ dbc变量。