我想用php-mysqli从我的表中只取一行。它使用prepared语句,但我不能这样做,而且我的代码没有显示任何内容。我该怎么办?
<?php
require_once 'inc/db.inc.php';
$post_id = $_GET['id'];
$q = "SELECT post_id, post_name, post_title, post_content, post_author, post_short_des, post_tag, post_date FROM posts WHERE post_id=? LIMIT 1";
$stmt = $conn->prepare($q);
$stmt->bind_param('i', $post_id);
$stmt->execute();
$stmt->bind_result($post_id, $post_name, $post_title, $post_content, $post_author, $post_short_des, $post_tag, $post_date);
$stmt->fetch();
print_r($stmt);
1条答案
按热度按时间cunj1qz11#
您需要绑定结果,然后获取它们。既然你有
LIMIT 1
,不需要循环任何内容,因为无论如何只会获取一行。请注意
SELECT *
,我们现在选择一列,在本例中,我们从列中选择content
(在数据库表中显示时进行更改)。所选列的数量与绑定的变量相匹配是很重要的mysqli_stmt_bind_result()
. 您可以选择多个列,只需用逗号分隔即可。http://php.net/mysqli-stmt.bind-result
http://php.net/mysqli-stmt.fetch
我是用手机写的,所以可能有一些错误。不过,文档中给出了很好的示例。