小编典典

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

sql

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

谢谢。


阅读 293

收藏
2021-04-14

共1个答案

小编典典

在php a'和a中"有很大的不同,查询语法在查询周围是双引号,在变量周围是单引号。。尽管我建议您在查询中使用参数,而不是直接将变量直接放入查询中

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

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

这只是它的基本要点…如果您想了解有关连接的更多信息..错误处理和其他内容,请阅读DOCS

2021-04-14