2

我一直在花时间学习 MySQLi 中的预处理语句。我使用 David Powers 的 PHP Solutions Second Edition 作为参考。

此查询从特定图库中提取随机照片文件名。画廊编号是一个变量 ($i)。这是有效的,我只是想知道它是否写得正确。我的网站相当简单,但我想避免 SQL 注入。

$conn = dbConnect('query');
$randPic = "SELECT p_fname
        FROM photos
        WHERE g_id = ?
        ORDER by RAND()
        LIMIT 1";
$gid = $i;
$stmt = $conn->prepare($randPic);
$stmt->bind_param('i', $gid);
$stmt->bind_result($p_fname);
$stmt->execute();
$stmt->store_result();
$stmt->fetch();

在需要随机照片的页面上,我可以通过变量调用它:

echo $p_fname;

再一次,这一切都有效。我只想知道这是否编码正确。

4

1 回答 1

0

是的,您的查询写得很好。

输出数据时要小心。如果为 HTML 页面输出可变数据,请使用htmlspecialchars()以避免意外地将 HTML 注入您的页面。

于 2012-08-06T00:04:08.923 回答