我想检查数据库中的行值是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
中的plaats
和snm_content
都填充了NULL
。
那么为什么如果值为NULL,它会到达else语句?
我应该提一下,这段代码在另一个查询的while循环中。
答案 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();
}