我一直在花时间学习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;
而且,这一切都有效。我只是想知道这是否编码正确。
答案 0 :(得分:0)
是的,您的查询写得很好。
输出数据时要小心。如果输出HTML页面的变量数据,请使用htmlspecialchars()
以避免意外将HTML注入您的网页。