检查列是否存在,如果不存在,则通过PHP添加MySQL

Dez*_*zie 1 php mysql database

我正在使用以下代码检查列是否存在,如果不存在,请添加它:

mysql_query("select $column from $table") or mysql_query("alter table $table add $column varchar (20)");
Run Code Online (Sandbox Code Playgroud)

但是数据库没有变化.有什么建议吗?

PS数据库已连接.

Ter*_*nce 7

您可以将SQL更改为...

//THIS IS BETTER BUT DONT USE THIS
$qry = "ALTER IGNORE TABLE {$table} ADD {$column} VARCHAR(20);"
Run Code Online (Sandbox Code Playgroud)

而是使用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();
Run Code Online (Sandbox Code Playgroud)