Проверьте, существует ли столбец, если нет, добавьте в MySQL через PHP

Я использую следующий код, чтобы проверить, существует ли столбец, а если нет, добавьте его:

mysql_query("select $column from $table") or mysql_query("alter table $table add $column varchar (20)"); 

Но в базе данных изменений нет. Любые предложения почему?

PS База данных подключена.

Solutions Collecting From Web of "Проверьте, существует ли столбец, если нет, добавьте в MySQL через PHP"

Вы можете изменить свой 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)"); }