检查数据库中现有条目的SQL查询无效

1 php mysql sql

<?php
          error_reporting(0);
          $link = mysqli_connect("localhost", "root", "", "checksql"); 

          if($link === false){
            die("ERROR: Could not connect. " . mysqli_connect_error());
          }

          $myemailaddress=$_POST['useremail']; 
          $mypassword=$_POST['userpassword'];

          $sql = mysqli_query("SELECT * FROM register WHERE Email = '$myemailaddress' ");
          $count = mysqli_num_rows($sql);
          echo $count;

          if($count > 0){
            echo "success";
          } else{
            echo "failed";
          }
       ?>
Run Code Online (Sandbox Code Playgroud)

我正在尝试检查数据库中是否存在电子邮件.我在stackoverflow上搜索了不同的线程并试图纠正它但失败了.即使是$ count的回声也没有表现出它的价值.有没有其他方法来检查它?

Fun*_*ner 5

您没有将db连接传递给您的查询

$sql = mysqli_query($link, "SELECT ...
                    ^^^^^^
Run Code Online (Sandbox Code Playgroud)

顺便说一下,你的代码是开放的SQL注入.

使用准备好的声明

更多关于SQL注入:

还要确保您的POST阵列没有让您失望.

错误报告添加到文件的顶部,这将有助于查找错误.

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code
Run Code Online (Sandbox Code Playgroud)

旁注:显示错误只能在分段中完成,而不能在生产中完成.

  • error_reporting(0); 没有帮助你,它会关闭它.

添加or die(mysqli_error($link))mysqli_query()检查错误.

如果您在同一文件中同时使用表单和PHP/MySQL,则会在初始页面加载时触发未定义的索引通知.

  • 使用!empty()他们.

参照(一个或多个):