Как связать NULL
в следующем сценарии. Независимо от того, что я делаю, я не могу заставить его работать.
if ($type == 1) { $self = 'NULL'; $parent = 'NULL'; } $findThis = $conn->prepare('select count(id) as exists from table where id = :id and self = :self and parent = :parent'; $findThis->execute(array( ":id" => $id, ":self" => $self, ":parent" => $parent ));
ОБНОВИТЬ. Я узнал, что все можно сделать в одном запросе
$sql = 'select 1 from table where id = ? and self <=> ? and parent <=> ?'; $stm = $conn->prepare($sql); $stm->execute([$id,$self,$parent]); $exists = $stm->fetchColumn();
-$sql = 'select 1 from table where id = ? and self <=> ? and parent <=> ?'; $stm = $conn->prepare($sql); $stm->execute([$id,$self,$parent]); $exists = $stm->fetchColumn();
Вы также должны изменить свой запрос.
$sql = 'select count(id) as exists from table where id = ? and '; if ($type == 1) { $sql .= 'self IS NULL and parent IS NULL' $data = [$id]; } else { $sql .= 'self = ? and parent = ?'; $data = [$id,$self,$parent]; } $stm = $conn->prepare($sql); $stm->execute($data);
Для нулевых значений вместо этого вы должны использовать IS NULL
в sql.