gpt4 book ai didi

PHP-PDO try/catch 插入动态 html 链接

转载 作者:行者123 更新时间:2023-11-30 01:02:18 25 4
gpt4 key购买 nike

我第一次使用 PDO 和准备好的语句时似乎遇到了一个小问题。基本上我正在开发一个包含收件箱的个人资料页面。我正在使用 try/catch 来生成收件箱:

<?php
$sqlin = $db->prepare("SELECT * FROM message WHERE recipientID = (SELECT id FROM members WHERE username = '$pageowner')");
try {
while($row = $sqlin->fetch(PDO::FETCH_ASSOC)){
?>
<br><a href="inbox.php?id=<?php echo $row['idmessage'] ?>"><?php echo $row['title'] ?></a>
<?php
}
}
catch(PDOException $e) {
die ($e->getMessage());
}
?>

因此,这应该将用户 ID 与收件人 ID 相关联,然后创建指向消息的链接。当我在浏览器中运行时,没有列出链接

这是我的 try/catch 语法中的问题吗?也许停止 php 并插入 html?--我尝试回显,但在创建该代码时遇到了问题。

最佳答案

您必须在 prepare() 之前和之后开始尝试/捕获异常。请使用准备好的语句和 prepare() 方法。否则,直接将变量放入查询中就违背了 PDO 的目的。这并不能让你的脚本更安全地免受 mysql 注入(inject)的影响。

$pageOwner = 'some external data';
try {
$sqlin = $db->prepare("
SELECT * FROM message
WHERE recipientID = (
SELECT id
FROM members
WHERE username = ?
)
");

$sqlin->execute(array($pageOwner));

}catch(PDOException $e){
die ($e->getMessage());
}

while($row = $sqlin->fetch(PDO::FETCH_ASSOC)){
?>

<br><a href="inbox.php?id=<?= $row['idmessage'] ?>"><?= $row['title'] ?></a>

<?php } ?>

关于PHP-PDO try/catch 插入动态 html 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20013366/

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