为什么此代码无法识别现有数据库?
$result = mysql_query("SHOW DATABASES LIKE $database", $conn);
echo $result." aaaaaaaaaaaaaaaaaaa<br>";
if ($result)
{
echo ("Datebase <font color='#FF0000'><b> $database </b></font> already exist.<br /><br />");
}
else
{
mysql_query("create database IF NOT EXISTS $database CHARACTER SET utf8 COLLATE utf8_general_ci");
echo ("Datebase <font color='#FF0000'><b> $database </b></font> is succesfully created.<br /><br />");
}
答案 0 :(得分:1)
您忘记了引号(在SQL中使用字符串时始终是必需的):
$result = mysql_query("SHOW DATABASES LIKE '$database'", $conn);
答案 1 :(得分:1)
此代码让我的某些人感到恶心......
这是一个很好的代码:
<?php
$query = "SHOW DATABASES LIKE ". $database;
$mysqlquery = mysql_query($query);
if($mysqlquery){
echo '<b>Database already exist.<br>';
}
else
{
$createquery = "CREATE DATABASE IF NOT EXISTS ". $database ." CHARACTER SET utf8 COLLATE utf8_general_ci";
$mysqlcreatequery = mysql_query($createquery);
if($mysqlcreatequery){
echo 'Database '. $database .' created. ';
}
else
{
echo 'Database is not created!';
}
}
?>
答案 2 :(得分:0)
由于模式是一个字符串,你必须引用它:
"SHOW DATABASES LIKE '$database'"
答案 3 :(得分:0)
数据库是Dr.Molle所述的字符串。另外,要注意通配符。 _
是单个字符通配符,因此当您查找数据库order_2010
时,它也会匹配orders2010
,这将导致假设order_2010
确实存在数据库中。
小机会,但我想我应该提一下。 :)