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

标签 php mysql sql-insert

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

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);

}
}

P.S dg_config.php 包含用于 MySQL 连接的变量 $db。另外,我的列中没有值,因此更新将不起作用。

期望的输出:

Desired output

最佳答案

如果您想先检查是否没有记录,然后只插入值,一种快速的方法是判断 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() 循环。

关于php - 如果列中没有数据,则将数据插入到列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53413896/

相关文章:

phpunit静态调用方法中的方法

php - 登录表单电子邮件和密码不正确错误

php - 重复数据如何删除

php - 将 php mysql 项目上传到免费虚拟主机网站时如何修复 dbconn 文件中的错误?

php - 在 wamp 中为 magento 安装新的 php 版本

mysql - 查询获取值

PHP MySQL 插入查询,如果已经存在则不会插入

mysql - 使用 LOAD FILE 时对重复项的值求和

php - MySQL INSERT 和 UPDATE 查询在 PHP 5.2.17 上不起作用

php - 如何编写 SQL 查询或使用什么 PHP 函数,以便在一列有重复条目时只返回一行结果?