如何在另一个查询的while循环内运行sql查询

时间:2014-10-14 18:05:11

标签: php mysql sql while-loop nested

当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'];
}

感谢。

2 个答案:

答案 0 :(得分:3)

在php中'"非常不同,查询语法是围绕查询的双引号和围绕变量的单引号..虽然我建议你看看你的查询中使用参数而不是仅仅将变量直接放入查询

根据我的建议,您应该将查询更改为:

$imageid = '103';
$query = $con->prepare("SELECT * FROM imgs WHERE photoid = ?");
$query->bind_param('sssd', $imageid);
$query->execute();

这只是它的基本要点...如果你想了解更多关于连接的信息..错误处理和其他一切阅读DOCS

答案 1 :(得分:1)

php中的'"之间存在很大差异

Differences

将您的查询更改为

$img_query = mysqli_query($con, "SELECT * FROM imgs WHERE photoid = '$imageid'") or die(mysqli_error($con));

它应该有用。