SELECT 查询准备语句输出

SELECT query Prepared Statement output

我对准备好的陈述还是个新手,所以请原谅我的愚蠢错误。

目前我正在尝试 select 来自数据库外部的东西。要么虽然没有输出。

$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();

像这样将绑定参数添加到您的查询中:

$stmt = $mysqli->prepare("SELECT title FROM media WHERE title = ?");
$stmt->bind_param("s", $title);

有关详细信息,请参阅 this

为了能够从准备好的语句中输出一些东西,你必须先select从数据库中输出一些东西。

如果你想select只有一个标题,那么你必须添加一个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();

但您必须意识到条件应该与数据库中存在的实际标题相匹配。否则什么也不会打印。

如果你想select所有的标题,那么删除绑定并添加一个循环

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();

按大众需求添加了最少的错误处理