如果列中没有数据,则将数据插入到列中

时间:2018-11-21 14:08:17

标签: php mysql sql-insert

如果该列没有值,如何将数据插入该列?除非我取出if语句,否则这段代码不会插入任何值。当然,这不是我想要的,因为这意味着每次运行代码时,都会在“数据组”列中插入更多数据。

include('dg_config.php');

# select column datagroup from table data
$stmt = $db -> prepare("SELECT datagroup FROM data");

$stmt->execute();

# fetch rows from data
while($row = $stmt->fetch()){

if (empty($row['datagroup'])){
    $insertdg = "INSERT INTO data (datagroup)
     VALUES ('Data Definitions'),('Policies'),('Systems and Process Documents'),('Purchase Orders'),('Invoices')";
    $db ->exec($insertdg);

}
}

PS dg_config.php 包含用于MySQL连接的变量$ db。另外,我在该列中没有值,因此UPDATE无法正常工作。

所需的输出:

Desired output

1 个答案:

答案 0 :(得分:0)

如果要先检查是否没有记录,然后仅插入值,那么一种快速的方法是说fetch()是否未能检索到行,然后进行插入...

include('dg_config.php');

# select column datagroup from table data
$stmt = $db -> prepare("SELECT datagroup FROM data");

$stmt->execute();
if ( !$stmt->fetch() ){
    $insertdg = "INSERT INTO data (datagroup)
     VALUES ('Data Definitions'),('Policies'),('Systems and Process Documents'),('Purchase Orders'),('Invoices')";
    $db ->exec($insertdg);

}
// re fetch the data
$stmt->execute();

这完全删除了while()循环。