php类型def与bind params不匹配

问题描述 投票:0回答:1

我有一个包含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():类型定义字符串中的元素数与绑定变量数不匹配

因此表格没有更新。我哪里错了?

php mysql
1个回答
1
投票

bind_param的第一个参数应该是相应绑定变量的类型。

$statement->bind_param('sisi', $email, $validationID, $usRequest, $isValidated);

注意:根据您的数据类型更改第一个参数中的类型。

Reference Link

© www.soinside.com 2019 - 2024. All rights reserved.