Php 不一致的MySQL查询

Php 不一致的MySQL查询,php,mysql,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); $ch

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

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

function checkE($email,$dbc){
checkE('horse@horseman.horse',$dbc);
然后像这样调用函数:

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

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

$dbc
变量在
checkE
函数的作用域中未定义。这样说是不合逻辑的:如果小于1,则返回1,而不是说:如果小于1,则返回0,因为小于1就是0。但除此之外,您如何调用您的函数?电子邮件参数是否设置在函数调用中正确?请使用准备好的语句。向数据库发送POST变量会让你受到攻击。你可以在函数中放入$dbc,但是$db_host和其他参数超出范围。关键是,来自函数外部的任何变量都需要作为参数传递,或者您可以使用
global
关键字将其放入范围(但前提是它确实是一个全局变量)。@idstam I将使用准备好的语句。这只是一个概念证明,对我来说写起来更快/更容易一点。谢谢你的提醒!只是补充一下,这样问题就不会“没有答案”