【发布时间】:2014-12-09 15:12:19
【问题描述】:
当 photoId 直接在语句上而不是变量时,以下工作完全没有问题。
$img_query = mysqli_query($con, 'SELECT * FROM imgs WHERE photoid = "103"') or die(mysqli_error($con));
但以下内容无法正常工作,可能会导致无法选择。
$imageid = '103';
$img_query = mysqli_query($con, 'SELECT * FROM imgs WHERE photoid = "$imageid"') or die(mysqli_error($con));
$img_row = mysqli_fetch_array($img_query);
echo $img_row['img'];
这是在一个while循环中。
while($row = mysqli_fetch_array($somequery)){
$imageid = $row['photoid'];
$img_query = mysqli_query($con, 'SELECT * FROM imgs WHERE photoid = "$imageid"') or die(mysqli_error($con));
$img_row = mysqli_fetch_array($img_query);
echo $img_row['img'];
}
谢谢。
【问题讨论】:
-
当使用
mysqli时,您应该使用参数化查询和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值来完成此操作,因为您将创建严重的SQL injection bugs。 -
您可能不应该在循环中运行 sql 查询。使用
JOIN通常效率更高。 -
@jeroen 我很想加入,你能根据我的问题举个例子吗?
-
您还需要发布第一个查询。
标签: php mysql sql while-loop nested