本文介绍了检查列是否存在,如果不存在,通过PHP添加MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm using the following code to check if the column exists, and if it doesn't, add it:

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

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

But there's no change in the database. Any suggestions why?

数据库已连接。

推荐答案

可以将SQL更改为...

You can change your SQL to...

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

而是使用PHP PDO或MySQLi with prepared语句。

Instead use PHP PDO or MySQLi with prepared statements.Instead of that legacy horror with concatinated unescaped strings.

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();

这篇关于检查列是否存在,如果不存在,通过PHP添加MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 17:37