$stmt = $dbh->prepare('SELECT id, name FROM folders WHERE parent_folder_id = :id');
$stmt->bindValue(':id', $folder_id, PDO::PARAM_INT);
Mam powyższy kod. Jeśli folder ma parent_folder_id, oznacza to, że znajduje się w innym folderze. Jeśli ta kolumna ma wartość NULL, oznacza to, że jest to folder główny.Jak powiązać wartość, jeśli chcę, aby akceptowała zarówno INT, jak i NULL z PDO?
Z mojego rozumienia, jeśli $ folder_id ma wartość NULL, wówczas będzie traktować go jako 0 (więc nie otrzymam wyników z kodem, ponieważ jest on wartością w tej kolumnie jest NULL, a nie 0). Jeśli zmienię trzeci argument na PDO :: PARAM_NULL, nadal nie otrzymam wyników. Sądzę, że dzieje się tak dlatego, że zapytanie to "WHERE parent_folder_id = NULL", które nie jest takie samo jak "WHERE parent_folder_id ma wartość NULL".
Czy istnieje sposób, aby PDO traktować to poprawnie, czy powinienem utworzyć moją instrukcję SQL z wbudowanym, jeśli chcesz zmienić "=" z "jest" i zamienić trzeci parametr bindValue na poprawny?
Dzięki! To sprawiło, że nauczyłeś mnie czegoś, nigdy wcześniej nie używałem <=> (yikes, trochę na imprezę, co?). Uratuje mnie to wiele bólów głowy w przyszłości, to na pewno :) – Gazillion