这是我使用输入表单在SQL
中创建数据库的代码。
<?php
//Connect to SQL
$conn = new mysqli('127.0.0.1','root','');
if( $conn -> connect_error ){
echo $conn -> connect_error;
die('Connection unsuccessful');
}
echo 'Connection sucessful';
?>
<!-- ==================================================================== -->
<form action="" method="POST">
<input type="text" name="db_name">
<input type="submit" value="Create Database">
</form>
<?php
//Create Database
if( isset( $_POST["db_name"] ) && $DBNAME = $_POST["db_name"] )
if( $conn -> query("CREATE DATABASE IF NOT EXISTS " . $DBNAME ) === TRUE )
echo 'Database Created Sucessfully';
else
echo 'Database ' . $DBNAME . ' already exists. Please try another name'; //This line won't execute
?>
如果输入重复的数据库名称,我想echo
最后一行。我不知道为什么它没有执行。有什么帮助吗?
注意:输入重复的名称不会创建任何内容,页面只会显示“数据库已成功创建”
答案 0 :(得分:0)
试试这个:
$query= $conn ->query("CREATE DATABASE " . $DBNAME );
if($query){
echo 'Database Created Sucessfully';
}
else{
echo 'Database ' . $DBNAME . ' already exists. Please try another name';
}
答案 1 :(得分:0)
您的SQL查询是:"CREATE DATABASE IF NOT EXISTS " . $DBNAME
对SQL引擎意味着什么:
$DBNAME
不存在,请创建它并告诉应用程序我们已完成!$DBNAME
存在,请不要做任何事情并告诉我们我们已完成申请!因为您的SQL始终成功执行,无论表是否存在,您都不会遇到else
子句。
答案 2 :(得分:0)
如果条件不要尝试分配值。并使用它来检查数据库是否已经存在
<?php
if( isset( $_POST["db_name"] ) )
$DBNAME = $_POST["db_name"];
if( $conn->query("CREATE DATABASE " . $DBNAME ) === TRUE )
echo 'Database Created Successfully';
else
echo 'Database ' . $DBNAME . ' already exists. Please try another name'; //This line won't execute
?>
答案 3 :(得分:0)
<?php
//Create Database
if( isset( $_POST["db_name"] ) && $DBNAME = $_POST["db_name"] )
if( $conn -> query("CREATE DATABASE " . $DBNAME ) === TRUE )
echo 'Database Created Sucessfully';
else
echo 'Database ' . $DBNAME . ' already exists. Please try another name'; //This line won't execute
?>
这应该这样做,好像你正在使用“IF NOT EXISTS”一样,你的查询将永远成功,但是如果你试图创建一个名称已经存在的数据库,那么查询将会失败,并且不会返回TRUE