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

时间:2019-06-14 20:36:04

标签: php mysql opencart

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

我的代码:

$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

2 个答案:

答案 0 :(得分:0)

$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中执行您的逻辑。

答案 1 :(得分:0)

使用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`");
}