检查空的不适合我

时间:2017-10-31 10:02:17

标签: php sql

我想检查数据库中的行值是NULL还是空,所以我执行了以下操作:

$existcheck           = "
    SELECT *
    FROM snm_content";
    $existcheckcon      = $conn->query($existcheck);
    $existcheck       = $existcheckcon->fetch_assoc();

    if((!empty($existcheck['plaats'])) AND (!empty($existcheck['straat']))){
      echo 'vol';
    }else{
      $vultable           = "
      ALTER TABLE snm_content
      ADD (straat varchar(255) NULL,
      plaats varchar(255) NULL)";
      $vultablecon      = $conn->query($vultable);
      $vultable       = $vultablecon->fetch_assoc();


      $updatetable            = "
      UPDATE snm_content
      SET straat = '".$straatnaam."', plaats = '".$bedrijven['plaats']."'";
      $updatetablecon       = $conn->query($updatetable);
      $updatetable       = $updatetablecon->fetch_assoc();
    }

但我收到以下消息:

  

运行查询时出错[重复列名'straat']

straat中的plaatssnm_content都填充了NULL

那么为什么如果值为NULL,它会到达else语句?

我应该提一下,这段代码在另一个查询的while循环中。

1 个答案:

答案 0 :(得分:0)

如果列中有数据,您应检查列是否存在,因此您必须这样做:

$existcheck           = "DESC snm_content";
$existcheckcon      = $conn->query($existcheck);
$existcheck       = $existcheckcon->fetch_assoc();

if((!empty($existcheck['plaats'])) AND (!empty($existcheck['straat']))){
  echo 'vol';
}else{
  $vultable           = "
  ALTER TABLE snm_content
  ADD (straat varchar(255) NULL,
  plaats varchar(255) NULL)";
  $vultablecon      = $conn->query($vultable);
  $vultable       = $vultablecon->fetch_assoc();


  $updatetable            = "
  UPDATE snm_content
  SET straat = '".$straatnaam."', plaats = '".$bedrijven['plaats']."'";
  $updatetablecon       = $conn->query($updatetable);
  $updatetable       = $updatetablecon->fetch_assoc();
}