php - SQL 插入 MySQL 不起作用

标签 php mysql sql select insert

我目前正在尝试将用户名、密码插入数据库,并检查用户名是否已存在。

问题是 SQL (select) 语法不起作用,(insert) 语法也不起作用。我在论坛和 Stackoverflow 上检查了几个小时,我当前的代码如下。

可能是什么问题?

谢谢,吉米。

 <?php
    $servername = "localhost";
    $username = "name";
    $password = "pw";
    $dbname = "dbaname";

    $mysqli = new mysqli($servername, $username, $password, $dbname);

    if ((isset ($_POST["identity"])) && (isset ($_POST["pin"])) && (isset ($_POST["token"])))
    {

      $identity = htmlspecialchars($_POST['identity'], ENT_QUOTES, "ISO-8859-1");
      $pin = htmlspecialchars($_POST['pin'], ENT_QUOTES, "ISO-8859-1");
      $token = htmlspecialchars($_POST['token'], ENT_QUOTES, "ISO-8859-1");

      echo "$identity";
      if($token == "xyz13D;A##:!#")
      {


        $result = $mysqli->query("SELECT `identity` FROM Users WHERE `identity` = '" . $identity . "'");
        if($result->num_rows == 0)
        {
           echo "successCreat";

              // Perform queries
              mysqli_query($mysqli,"SELECT * FROM Users");

              mysqli_query($mysqli,"INSERT INTO Users (identity,pin,userActivity, identityCreated) VALUES ('$identity', '$pin',1,now())");
        }
        else
        {
          echo "failureCreate";
        }

      }
      else
      {
        echo"Wrong Key";
      }
    }
    $mysqli->close();
    ?>

最佳答案

假设identity是主键,那么您可以在执行INSERT查询后检查错误标志以查看是否发生错误。

mysqli_query( $mysqli, "INSERT INTO ... " ); //< ... Represents query
if (mysqli_error( $mysqli )) {
  echo "Failure";
}
else {
  echo "Success";
}

此外,您应该按照注释中的说明正确转义输入。此外,您应该使用 mysqli_connect_error 检查连接尝试是否成功。

最后,您的 SQL suntax 中可能存在问题,mysqli_error 也会捕获该问题。最后一种可能性是 POST 数据未正确设置并且代码被完全忽略。

关于php - SQL 插入 MySQL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40392225/

相关文章:

mysql - 如何在mysql 8.0+中获取唯一数据

SQL 对分区上的不同计数进行累积

c# - 无法将参数值从字符串转换为日期时间

php - 重写引擎搞乱了 javascript 和 css

php - 简单的参数检查功能,这里只要允许%

php - mysql group_concat 显示所有日期

php - 颠倒数组?

MySQL - 按客户数量对订单计数进行分组

php - 我应该为类似的用法创建不同的 SQL 表,还是只创建一个带有参数的表?

php - 您如何自定义格式化 html 标记 MySQL 字段中的第一个单词/字符?