无法通过用户输入创建数据库

时间:2019-07-11 13:30:25

标签: php mysql

我只是在尝试检查是否存在具有相同名称的数据库(如果是,则抛出错误),否则请创建该数据库并显示该数据库已成功创建。但是在输入数据库名称后,将不会创建任何数据库。我可能会缺少什么? (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";
    }
?>

1 个答案:

答案 0 :(得分:1)

您不在<form>此处使用操作:

<form method="post" action="">

您必须使用以下操作来调用db.php

<form method="post" action="db.php">

在这里,我假设db.phpindex.html都位于同一目录中。

旁注:

使用用户输入表单创建数据库而不阻止SQL注入不是一个好方法。使用PDO / prepared statement来防止SQL注入。

对未来访问者的另一个建议:

如果未执行查询,请使用die("Database already exist.. please try different name");代替mysqli_error()来获取实际错误。