准备好的声明,这是正确写的吗?

时间:2012-08-06 00:00:38

标签: php mysqli prepared-statement

我一直在花时间学习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;

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

1 个答案:

答案 0 :(得分:0)

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

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