Как запустить SQL-запрос внутри цикла while другого запроса

Следующее работает без проблем, когда 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'];
}

Благодарю.

0

Решение

в PHP ' и " очень разные, и синтаксис запроса — двойная кавычка вокруг запроса и одинарная кавычка вокруг переменных … хотя я бы рекомендовал вам использовать параметры в вашем запросе, а не просто помещать переменную непосредственно в запрос

По моей рекомендации вы должны изменить свой запрос на это:

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

это только основные моменты … если вам нужна дополнительная информация о подключении .. обработка ошибок и все остальное, прочитайте DOCS

3

Другие решения

есть большая разница между ' а также " в php

Различия

измените свой запрос на

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

и это должно работать.

1

По вопросам рекламы [email protected]