我有一个包含5列的表,其中第一列是主键,并具有Auto_INCREMENT属性。我试图使用以下代码在表中插入一行:
<?php
include "DBConstants.php";
$db = new DBConstants();
$connection = new mysqli($db->SERVER_NAME,$db->DB_USERNAME,$db->DB_PASSWORD,$db->DB_NAME);
$query = "INSERT INTO mailinglist (email, validationID, usRequest, isValidated) VALUES (?,?,?,?)";
$statement = $connection->prepare($query);
$email = $_GET["email"];
$validationID = openssl_random_pseudo_bytes ( 10, $crstrong);
$usRequest=false;
$isValidated = false;
$statement->bind_param($email,$validationID,$usRequest,$isValidated);
$statement->execute();
$statement->close();
$connection->close();
$array = array("result"=>true,"message"=>"You have successfully subscribed");
echo json_encode($array);
?>
但是我收到这样的警告:
警告:mysqli_stmt :: bind_param():类型定义字符串中的元素数与绑定变量数不匹配
因此表格没有更新。我哪里错了?
bind_param
的第一个参数应该是相应绑定变量的类型。
$statement->bind_param('sisi', $email, $validationID, $usRequest, $isValidated);
注意:根据您的数据类型更改第一个参数中的类型。