Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查表中是否存在电子邮件的PHP脚本_Php_Mysql - Fatal编程技术网

检查表中是否存在电子邮件的PHP脚本

检查表中是否存在电子邮件的PHP脚本,php,mysql,Php,Mysql,我正在制作一个PHP时事通讯脚本,我在代码方面不是很有经验,但我会尽力改进,我只需要一些想法就可以了 function validate(){ if(isset($_POST['email'])){ $email = $_POST["email"]; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "<br>Va rugam introduceti o adresa

我正在制作一个PHP时事通讯脚本,我在代码方面不是很有经验,但我会尽力改进,我只需要一些想法就可以了

function validate(){
    if(isset($_POST['email'])){
        $email = $_POST["email"];
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "<br>Va rugam introduceti o adresa valida de email";
        }else{
            return 1;
        }
      }
    }



function checkmail(){
        if(validate()==1){
            if(isset($_POST['email'])){
                $email = $_POST['email'];
                $sql = "SELECT * FROM subscribe WHERE email LIKE '$email'";
                $connect =  new mysqli("localhost", "root", "", "alexandru");
                $result = mysqli_query($connect,$sql);
                echo print_r($result);
            }        
        }

    }
函数验证(){
如果(isset($_POST['email'])){
$email=$_POST[“email”];
如果(!filter_var($email,filter_VALIDATE_email)){
echo“
Va rugam介绍电子邮件地址”; }否则{ 返回1; } } } 函数checkmail(){ 如果(validate()==1){ 如果(isset($_POST['email'])){ $email=$_POST['email']; $sql=“从订阅位置选择*电子邮件,如“$email”; $connect=newmysqli(“localhost”、“root”、“alixandru”); $result=mysqli\u查询($connect,$sql); 回声打印(结果); } } }

我不知道如何检查查询结果,我需要一些想法,谢谢

我制作了这个简单的函数,您可以使用

function field_exists($field_name, $field_value, $table)    
    {
        global $conn;
        try
        {
            $s = $conn->prepare("SELECT * from $table where $field_name = :f_value");
            $s->bindParam(':f_value', $field_value);
            $s->execute();
            if($s->rowCount() > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }//function
使用此函数,可以检查任何表中指定列的任何值

因此,在您的情况下,
$field\u name
将是
email
$field\u value
将是
$email
,表将是
subscribers

用法

if(field_exists("email", $email, "subscribers"))
{
//email exists
}
else
{
//email doesn't exist
}

如果表中存在此电子邮件,函数将返回true,如果电子邮件不存在,函数将返回false。

此代码我在实践中没有使用oops概念,我认为它会有所帮助

  extract($_POST);
    $qwe = "SELECT * FROM user_info where email= '$email'";
    $result = mysqli_query($con, $qwe);
    if (mysqli_fetch_row($result) >= 1) {
      header("Location: userreg.php?err=msg");
    }
    else {
        // query for what u want after check mail doesn't exist
    }

将清理后的
$\u POST['email']
作为参数传递给函数。另外,不要每次都建立数据库连接,包括一个已经有数据库连接的文件。这样,您的代码将更加分散,将来更容易调试。感谢您的提示,我将这样做,我对此表示赞赏。因此,您的想法是在插入电子邮件之前检查
subscribe
表中是否存在该电子邮件?如果您想在插入之前检查记录,请不要参考标记的重复项。使用globals。哦。this hurts.OP使用mysqli,这与异常有关。@syck他可以轻松地将其转换为mysqli。我只是复制粘贴了我自己为此类检查创建的函数;)@Akshay您通常会根据OP问题给出答案。@Script47我只是觉得发布一个更好的函数从长远来看会有助于OP。他将来肯定会想做更多这样的检查。