Как проверить, имеет ли значение столбца значение null? Пример кода:
$db = DBCxn::getCxn(); $sql = "SELECT exercise_id, author_id, submission, result, submission_time, total_rating_votes, total_rating_values FROM submissions LEFT OUTER JOIN submission_ratings ON submissions.exercise_id=submission_ratings.exercise_id WHERE id=:id"; $st = $db->prepare($sql); $st->bindParam(":id", $this->id, PDO::PARAM_INT); $st->execute(); $row = $st->fetch(); $this->total_rating_votes = $row['total_rating_votes']; if($this->total_rating_votes == null) // this doesn't seem to work even though there is no record in submission_ratings???? { ... }
Когда вы подключаетесь к базе данных, вы можете установить некоторые атрибуты для управления тем, как PDO обрабатывает Nulls и Empty Strings, когда они возвращаются запросом базы данных
PDO :: setAttribute (PDO :: ATTR_ORACLE_NULLS, $ option)
Где $ option является одним из следующих:
Разве это не то, что вы хотите сделать?
foreach($row as $r){ if($r->total_rating_votes == null){ //do something }
На самом деле вы можете попробовать:
if($r->total_rating_votes == ""){/*do something*/}
Поскольку php, возможно, преобразовал нулевое значение в пустую строку, а затем он фактически не является нулевым, это ""
Надеюсь это поможет!
Спасибо за все ваши ответы. После небольшого количества экспериментов этот код решил мою проблему
$this->total_rating_votes = $row['total_rating_votes']; if(!isset($this->total_rating_votes)) // this is now true if this record had a NULL value in the DB!!! { ... }