gpt4 book ai didi

PHP - PDO 参数编号无效

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:31 28 4
gpt4 key购买 nike

关于这个有很多问题,但我仍然找不到能回答我问题的问题。

我得到了一些代码(很明显),它对数据库进行了查询,但由于某种原因它返回了一个错误。

// ^ somewhere in the top session_start();
require("rw_conx.php");
try {
// Get answers from database
$db = new PDO ("mysql:host=$host;dbname=$dbname", $username, $pass);
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $db->prepare("SELECT antwoorden, commentaar
FROM antwoorden
WHERE vragenlijst = :vragenlijst
AND meting = :meting
AND behandeltraject = :behandeltraject
AND onderzoeksNR = :onderzoeksnummer");
$vragenlijst = "1";
$meting = "1";
$onderzoeksNR = trim(preg_replace('#[^0-9]#', '', $_SESSION["onderzoeksnummer"]));
$behandeltraject = trim(preg_replace('#[^0-9]#', '', $_SESSION["behandeltraject"]));
$stmt->execute(array('vragenlijst'=>$vragenlijst,'meting'=>$meting,'behandeltraject'=>$behandeltraject,'onderzoeksnummer'=>$onderzoeksNR));
// Render all questions (check if 5's should be hidden), input disabled, no answer categories.
$num_rows = $stmt->rowCount();
$row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT);

// What this does is create a string like: 1=2,2=4,3=5|||COMMENTS|||1=blabla,2=blabla
if ($num_rows > 0) {
echo $row[0];
echo "|||COMMENTS|||";
echo $row[1];
} else {
echo "no data";
}
} catch(PDOException $e) {
echo "I'm sorry, I'm afraid I can't do that. (1)";
file_put_contents('../debug.log', $e->getMessage(), FILE_APPEND);
exit();
}

$stmt->execute(array('vragenlijst'=>$vragenlijst,'meting'=>$meting,'behandeltraject'=>$behandeltraject,'onderzoeksnummer'=>$onderzoeksNR));

--- 编辑 ---

为了说明这一点,我将进行解释。

<强>1。我在上面的问题中提到, session 没有问题。

我的意思是,发生的错误 (SQLSTATE[HY093]) 没有被抛出,因为 session 是空的。

<强>2。问题依旧。

即使 session_start() 修复了查询(它现在返回它应该返回的行),我仍然遇到同样的错误,这(当然)不应该发生。

我希望这能澄清一些事情,因为每个人都在生我的气。我确实提到 session 没有问题,并且对于发生的错误,它们没有问题。出于某种原因,即使查询成功运行,catch 函数仍然给我一个错误。

所以,如果还有人愿意帮助我,我将不胜感激。

--- 结束编辑 ---

有人看到(可能很明显的)缺陷吗?

最佳答案

您面临的问题是由于零宽度空间( 在 unicode 中)。这可能会自动添加到您正在使用的编辑器中。 jQuery 还将插入零宽度空格字符,您可以阅读 here .

但为什么会出现 SQLSTATE[HY093] 错误?

这是因为$behandeltraject没有定义(前面有一个零宽的空格)所以参数不会匹配。

关于PHP - PDO 参数编号无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27689049/

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