$stmt = $dbh->prepare('SELECT id, name FROM folders WHERE parent_folder_id = :id');
$stmt->bindValue(':id', $folder_id, PDO::PARAM_INT);
Ho il codice sopra. Se una cartella ha un parent_folder_id, significa che si trova all'interno di un'altra cartella. Se questa colonna è NULL, significa che è una cartella radice.Come associare un valore se voglio che accetti sia INT sia NULL con PDO?
Dalla mia comprensione se $ folder_id è NULL quindi lo tratterà come 0 (quindi non ottengo risultati con il codice così com'è perché il valore in quella colonna è NULL e non 0). Se cambio il terzo argomento in PDO :: PARAM_NULL non ottengo ancora risultati. Credo che questo sia perché valuta la query come "WHERE parent_folder_id = NULL" che non è uguale a "WHERE parent_folder_id è NULL".
C'è un modo per fare in modo che PDO lo consideri correttamente o dovrei creare la mia istruzione SQL con un inline se modificare "=" con "is" e scambiare il terzo parametro bindValue con quello corretto?
Grazie! Questo ha fatto il trucco e tu mi hai insegnato qualcosa anch'io, non avevo mai usato <=> prima (ehi, un po 'alla festa, eh?). Mi risparmierà un sacco di mal di testa in futuro, questo è sicuro :) – Gazillion