Я использую следующий код, чтобы проверить, существует ли столбец, а если нет, добавьте его:
mysql_query("select $column from $table") or mysql_query("alter table $table add $column varchar (20)");
Но в базе данных изменений нет. Любые предложения почему?
PS База данных подключена.
Вы можете изменить свой SQL на …
//THIS IS BETTER BUT DONT USE THIS $qry = "ALTER IGNORE TABLE {$table} ADD {$column} VARCHAR(20);"
Вместо этого используйте PHP PDO или MySQLi с подготовленными операторами. Вместо этого унаследованного ужаса с конкатенацией несвязанных строк.
MySQLi Решение:
$mysqli = new mysqli($cfg->host, $cfg->user, $cfg->password, $cfg->db); if ($mysqli->connect_errno) { echo 'Connect failed: ', $mysqli->connect_error, '" }'; exit(); } if ($stmt = $mysqli->prepare("ALTER IGNORE TABLE ? ADD ? VARCHAR(20);")) { $stmt->bind_param("ss", $table, $column); $stmt->execute(); $stmt->close(); } $mysqli->close();
$r=mysql_num_rows(mysql_query("SHOW columns from '".$table."' where field='".$column."'")); if ($r==0){ mysql_query("alter table $table add $column varchar (20)"); }