$stmt = $dbh->prepare( 'SELECT id, name FROM folders WHERE parent_folder_id = :id' );
$stmt->bindValue( ':id', $folder_id, PDO::PARAM_INT );
У меня есть приведенный выше код. Если у папки есть parent_folder_id, это означает, что она находится внутри другой папки. Если этот столбец имеет значение ПУСТО (NULL), это означает, что это корневая папка.
Насколько я понимаю, если $ folder_id имеет значение ПУСТО (NULL), то он будет рассматривать его как 0 (поэтому я не получаю результатов с кодом, как он есть, потому что значение в этом столбец NULL, а не 0). Если я изменю третий аргумент на PDO :: PARAM_NULL, я все равно не получу результатов. Я считаю, что это связано с тем, что он оценивает запрос как «WHERE parent_folder_id = NULL», который не совпадает с «WHERE parent_folder_id is NULL».
Есть ли способ, чтобы PDO обрабатывал это правильно, или я должен создать свой SQL со встроенным выражением if заменить "=" на "is" и заменить третий параметр bindValue на правильный?