有 2 个请求,一个 insert 为条目添加评论,另一个显示它们,每个条目都有自己的评论
请求添加评论:
$sql = 'INSERT INTO comments(name, comment, post_id) VALUES (:name, :comment, :post_id)';
$sqlParams = [':name' => $_POST['name'], ':comment' => $_POST['comment'], ':post_id' => $_GET['id']];
嗯,结论:
$sql = 'SELECT * FROM comments WHERE post_id = :id';
$sqlParams = [':id' => $_GET['id']];
问题是在第一个请求中我无法将值 $_GET['id'] 分配给 :post_id 。使 var_dump($_GET['id']) 得到一个字符串,并且 int 表中的 post_id 进行了硬转换 ':post_id' => (int)$_GET['id'],结果,而不是预期参数 $_GET['id '] 假设是 500,我总是得到 0
您正在尝试在 POST 请求中获取 GET 变量。这样做不值得。请求必须是 POST 或 GET。
将 $_GET 替换为 $_POST 变量。
很可能您有一些发送数据的表单或 AJAX js 脚本 (JQuery):
将从 $_GET['id'] 获得的 id 也添加到它们中,然后您可以轻松地使用以下行:
您可以通过添加到表单中来做到这一点
或者在数据 $.ajax 之前从 URL 接收到值。