MySQL查询不一致

时间:2015-01-10 09:34:39

标签: php mysql

以下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);

1 个答案:

答案 0 :(得分:2)

将$ dbc添加到您的函数参数中,如下所示:

function checkE($email,$dbc){

然后像这样调用你的函数:

checkE('horse@horseman.horse',$dbc);

你现在没有传递$ dbc变量。