我对准备好的陈述还不熟悉,请原谅我犯下的愚蠢错误。
目前我尝试从数据库外部选择一些东西。虽然没有输出。
$stmt = $mysqli->prepare("SELECT title FROM media");
$stmt->bind_param("s", $title);
$stmt->execute();
$stmt->bind_result($a);
$stmt->fetch();
printf("Title: ", $title, $a);
$stmt->close();
答案 0 :(得分:2)
将绑定参数添加到您的查询中,如下所示:
$stmt = $mysqli->prepare("SELECT title FROM media WHERE title = ?");
$stmt->bind_param("s", $title);
有关详细信息,请参阅this。
答案 1 :(得分:2)
为了能够从预准备语句中输出内容,您必须先从数据库中选择一些内容。
如果您只想选择一个标题,则必须添加WHERE条件
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$stmt = $mysqli->prepare("SELECT title FROM media WHERE title=?");
$stmt->bind_param("s", $title);
$stmt->execute();
$stmt->bind_result($a);
$stmt->fetch();
echo "Title: $title : $a");
$stmt->close();
但你必须意识到条件应该与数据库中存在的实际标题相匹配。否则将不会打印任何内容。
如果要选择所有标题,请删除绑定并添加循环
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$stmt = $mysqli->prepare("SELECT title FROM media");
$stmt->execute();
$stmt->bind_result($a);
while ($stmt->fetch())
{
echo "Title: $a";
}
$stmt->close();
受欢迎的需求增加了最小的错误处理