我需要从数据库(opencart)添加列也检查问题或没有

I need add column from database(opencart) also check issue or no

我使用了一些代码,但是有问题

我的代码:

$check = $db->query("SELECT * FROM `oc_product` WHERE $column_new");
if($check !== FALSE){echo("<p>The column exists.</p>");
}else{
$add = $db->query("ALTER TABLE $table_new ADD $column_new DECIMAL( 15, 4 ) NOT NULL DEFAULT  '0.0000' AFTER  `price`");
}

文本错误消息:

i Notice: Error: Unknown column 'price_old' in 'where clause'
Error No: 1054
SELECT * FROM `oc_product` WHERE price_old in \database\mysql.php on line 50
$check = $this->db->query("SHOW COLUMNS FROM " . DB_PREFIX . "product LIKE 'price_old'");
if ($check->num_rows > 0) {
    echo "It exists";
} else {
    echo "Not";
}

我们可以像上面那样检查并在 if else 中执行您的逻辑。

使用SHOW COLUMNS

// table oc_product
$query = $this->db->query("SHOW COLUMNS FROM `" . DB_PREFIX . "product`");
$field = array_column($query->rows, 'Field');

if(!in_array($column_new, $field)){
     $this->db->query("ALTER TABLE `" . DB_PREFIX . "product` ADD COLUMN $column_new DECIMAL( 15, 4 ) NOT NULL DEFAULT  '0.0000' AFTER  `price`");
}