SQL插入数据库

时间:2018-09-26 15:59:15

标签: php html mysql database mysql-error-1064

我想知道此段代码有什么错误。我能够推断出该问题出现在“ $ stmt-> bind_param(“ ssssii”,$ id,$ username,$ password);“

这是错误: 警告:mysqli_stmt :: bind_param():类型定义字符串中的元素数量与C:\ Users ...中的绑定变量数量不匹配。

 $SELECT = "SELECT username From login Where username = ? Limit 1";
     $INSERT = "INSERT Into login (id, username, password) values(?, ?, ?)";
     //Prepare statement
     $stmt = $conn->prepare($SELECT);
     $stmt->bind_param("s", $username);
     $stmt->execute();
     $stmt->bind_result($username);
     $stmt->store_result();
     $rnum = $stmt->num_rows;
     if ($rnum==0) {
      $stmt->close();
      $stmt = $conn->prepare($INSERT);
      $stmt->bind_param("ssssii", $id, $username, $password);
      $stmt->execute();
      echo "New record inserted sucessfully";
     } else {
      echo "Someone already registered using this username";
     }
     $stmt->close();
     $conn->close();

我将不胜感激。

非常感谢您

1 个答案:

答案 0 :(得分:-1)

$stmt->bind_param("ssssii", $id, $username, $password);语句中,您给出/声明6种参数类型,但仅指定3个要绑定的参数。 应该是$stmt->bind_param("iss", $id, $username, $password);,表示您的ID是一个数字。

编辑:正如icecub在上面的评论中已经提到的