Мне нужно добавить столбец из базы данных (OpenCart) также проверить вопрос или нет - PullRequest
0 голосов
/ 14 июня 2019

я использовал какой-то код, но у меня проблема

мой код:

$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 голосов
/ 16 июня 2019

Использование 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`");
}
0 голосов
/ 15 июня 2019
$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 if.

...