我正在使用以下代码检查列是否存在,如果不存在,请添加它:
mysql_query("select $column from $table") or mysql_query("alter table $table add $column varchar (20)");
但数据库没有变化。有什么建议吗?
P.S。数据库已连接。
答案 0 :(得分:7)
您可以将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();
答案 1 :(得分:2)
$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)");
}
答案 2 :(得分:0)
对于msqli用户
scrape(url)