У меня есть этот запрос:
use Illuminate\Database\Capsule\Manager as DB;
$arr = [/* Array values here */];
$in = str_repeat('?,', count($arr) - 1) . '?';
$str = "SELECT ... FROM ... WHERE ... AND ... IN ($in)";
$select_categories = DB::select($str, $arr);
Теперь я получаю ошибку Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number
, это трассировка стека:
/ var / www /vendor / подсветка / база данных / Connection.php: 330 трассировки стека: # 0 /var/www/vendor/illuminate/database/Connection.php(330): PDOStatement-> execute () # 1 / var / www / vendor / подсветка/database/Connection.php(657): Подсветка \ База данных \ Соединение-> Подсветка \ База данных {закрытие} ('SELECT categoryori ...', Array) # 2 /var/www/vendor/illuminate/database/Connection.php(624): Освещение \ База данных \ Соединение-> runQueryCallback ('ВЫБРАТЬ категорию ...', Массив, Объект (Закрытие)) # 3 /var/www/vendor/illuminate/database/Connection.php(333): Осветить \База данных \ Соединение-> Выполнить ('ВЫБЕРИТЕ имя ...', Массив, Объект (Закрытие)) # 4 /var/www/vendor/illuminate/database/Capsule/Manager.php(199): Осветить \ База данных \ Соединение-> select ('SELECT name ...', Array) # 5 /var/www/categ.class.php(81): Подсветка \ Database \ Capsule \ Manager :: __ callStatic ('select', Array) # 6 / var/www/categ.class.php(123): Сайт \ Naviga in /var / www / vendor / lightingate / database / Connection.php в строке 664
Я не понимаю, почему это происходит.Я пытаюсь отобразить переменные $str
и $arr
, чтобы проверить, соответствует ли число ?
количеству массива и действительно ли это так.Поэтому я не могу понять, почему генерируется эта ошибка.Любая идея?
В стеке есть 3 аргумента run('SELECT name...', Array, Object(Closure))
, может быть, это вызывает проблему, так как думает, что есть третий параметр, которого нет?Или что-то подобное?
РЕДАКТИРОВАТЬ:
$str
содержит: "?,?,?,?,?,?"
$arr
содержит: [94, 91, 97, 92, 96, 90]
Результат dd($str, $arr);
:
"SELECT ... FROM ... WHERE ... IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ORDER BY pro.sort_order"
array:14 [
0 => "56"
1 => "163"
4 => "64"
6 => "53"
7 => "52"
10 => "55"
12 => "59"
13 => "57"
28 => "157"
43 => "60"
49 => "133"
68 => "287"
101 => "54"
109 => "278"
]