gpt4 book ai didi

php - mysqli bind_param 失败或抛出非对象错误?

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:47 25 4
gpt4 key购买 nike

您好,我正在从正常的做事方式转换为这种"new"对象方式...我不会撒谎,我很困惑,希望有人能在这里帮助我...

下面是我的代码

<?php
include("common/functions.inc.php");
$mysqli = new MySQLi($settings['mysql']['host'], $settings['mysql']['user'], $settings['mysql']['pass'], $settings['mysql']['db']);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if($stmt = $mysqli->prepare("INSERT INTO tbl_survey (fld_submituid, fld_q1answer, fld_q2answer, fld_q3answer, fld_q4answer, fld_q5answer, fld_q6answer) VALUES (:uid, :q1, :q2, :q3, :q4, :q5, :q6)")) {
$stmt->bindParam(":uid",$uid, PDO::PARAM_INT);
$stmt->bindParam(":q1",$q1, PDO::PARAM_STR, 12);
$stmt->bindParam(":q2",$q2, PDO::PARAM_STR, 12);
$stmt->bindParam(":q3",$q3, PDO::PARAM_STR, 12);
$stmt->bindParam(":q4",$q4, PDO::PARAM_STR, 12);
$stmt->bindParam(":q5",$q5, PDO::PARAM_STR, 12);
$stmt->bindParam(":q6",$q6, PDO::PARAM_STR, 12);
$uid = 1;
$q1 = "q1";
$q2 = "q2";
$q3 = "q3";
$q4 = "q4";
$q5 = "q5";
$q6 = "q6";

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
if($stmt->execute()) {
echo 'true';
} else {
echo 'false';
}
} else {
echo 'fail';
}

我仍然不明白为什么我的代码会失败,请有人帮助我吗?谢谢

最佳答案

mysqli 不支持命名占位符。

请阅读documentation并遵循正确的语法

要从 prepare() 获得错误消息,请在连接之前添加此行:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

关于php - mysqli bind_param 失败或抛出非对象错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19540261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com