Использование именованных параметров в подзапросе MySQL с PHP8MySql

Форум по Mysql
Ответить
Anonymous
 Использование именованных параметров в подзапросе MySQL с PHP8

Сообщение Anonymous »

У меня есть 2 таблицы клиентов и адресов (каждый клиент может иметь много адресов)
Таблица клиентов имеет два интересующих поля:
userName (varchar)
userID (varchar)
Таблица адресов имеет два интересующих поля
userID (varchar)
addressName (varchar)
Я хочу выбрать адресные имена для конкретного клиента, используя:

Код: Выделить всё

$sql = "SELECT addressName FROM addresses
WHERE userID = (SELECT userID FROM customers WHERE userName = :userName)";
$stmt = $db->prepare($sql);
$stmt->bindParam(':userName', $customerName);
$stmt->execute();
$addresses = $stmt->fetchall();
это отлично работает с PHP 7.4, но не работает с PHP 8.0 и выше; он возвращает пустой массив.
Единственный способ заставить его работать — сначала запустить подзапрос, чтобы получить идентификатор пользователя, а затем подключить его в качестве параметра к основному запросу, который неуклюж, но имеет то преимущество, что работает с PHP 7.4 и PHP 8.
Я не могу понять, что я делаю неправильно
Не могли бы вы показать мне ошибку моего пути?
большое спасибо

Подробнее здесь: https://stackoverflow.com/questions/798 ... -with-php8
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»