我只是在尝试检查是否存在具有相同名称的数据库(如果是,则抛出错误),否则请创建该数据库并显示该数据库已成功创建。但是在输入数据库名称后,将不会创建任何数据库。我可能会缺少什么? (db.php甚至被称为??吗?我认为index.html和db.php应该有某种通信方式,对吗?)
这是我的index.html
<form method="post" action="">
Enter database name: <input type="text" name="db" /><br/>
<input type="submit" name="submit" value="submit"/>
</form>
还有我的db.php:
<?php
if(isset($_POST['submit'])){ //check for the submit button pressed
$dbname=$_POST['db']; //store the database name in php variable
$query= mysqli_connect('localhost','root','')or die("Error establishing connection"); //check for database connectivity
$a="CREATE DATABASE IF NOT EXISTS ".$dbname; //create a database if it doesn't already exist
$q= mysqli_query($query, $a) or die("Database already exist.. please try different name");
echo "Your database ".$dbname." is successfully created";
}
?>
答案 0 :(得分:1)
您不在<form>
此处使用操作:
<form method="post" action="">
您必须使用以下操作来调用db.php
:
<form method="post" action="db.php">
在这里,我假设db.php
和index.html
都位于同一目录中。
旁注:
使用用户输入表单创建数据库而不阻止SQL注入不是一个好方法。使用PDO / prepared statement来防止SQL注入。
对未来访问者的另一个建议:
如果未执行查询,请使用die("Database already exist.. please try different name");
代替mysqli_error()
来获取实际错误。