【问题标题】:PHP to create MySQL database? [closed]PHP创建MySQL数据库? [关闭]
【发布时间】:2013-01-23 00:32:06
【问题描述】:

我现在正在学习 PHP 和 MySQL。我创建了一个简单的 HTML 表单和 PHP 脚本来生成 MySQL 数据库,但是当我测试它时,它不起作用。提交表单后,我收到“服务器错误。网站在检索http://www.xxxxx.com/php/createDB.php 时遇到错误。可能因维护而关闭或配置错误。

我的 HTML 表单如下:

<body>
<h2>Please enter the following information to create a new database.</h2>
<form action="createDB.php" method="post">
Server Name: <input type="text" name="servername">
Database Name: <input type="text" name="databasename">
User Name: <input type="text" name="username">
Password: <input type="text" name="password">
<input type="submit" value="submit">
</form>
</body>

我的 PHP 脚本如下:

<?php
$server = $_POST['servername'];
$dbname = $_POST['databasename'];
$user = $_POST['username'];
$pwd = $_POST['password'];

$con = mysql_connect($server,$user,$pwd);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE" $dbname,$con))
{
echo "Database " .$dbname ." created!";
}
else
{
echo "Error creating database: " . mysql_error();
}
mysql_close($con);
?>

这有什么问题吗?

谢谢。

hc.

【问题讨论】:

  • 您的 PHP 代码中有语法错误:mysql_query("CREATE DATABASE" $dbname,$con))。话虽如此,这是一个糟糕的主意。
  • 自 PHP 5.5.0 起不推荐使用 MySQL 扩展,并将在未来删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。
  • 首先,了解一下鲍比桌:) bobby-tables.com
  • @PeterSzymkowski 大概运行它的人都需要数据库凭据,因此 SQL 注入有点争议,因为他们拥有该死的数据库。
  • @NullUserException 呃我猜你是对的:))) 我的错

标签: php html mysql forms


【解决方案1】:

您的 PHP 脚本有错误,因此 PHP 无法解析它。

错误:

if (mysql_query("CREATE DATABASE" $dbname,$con))

试试这个来修复它(别忘了DATABASE和"之间的空格):

if (mysql_query("CREATE DATABASE " . $dbname,$con))

【讨论】:

  • 脚本有效,但我得到了这个“无法连接:用户'root'@'localhost'的访问被拒绝(使用密码:YES)”。如何将 $pwd 链接到 MySQL 服务器密码?
  • 哎呀..它有效。忽略我之前的评论。谢谢
【解决方案2】:

许多 PHP 程序员仍然没有使用 Try Catch,在代码中实现优雅的异常处理总是一个好主意,好处有两个:更容易根据返回的堆栈跟踪和前端调试代码您可以向您的用户提供有意义的消息和/或在更高级别以编程方式采取行动。

说了这么多,我不记得上次看到手卷MySql连接代码是什么时候了,猜猜是框架时代。

【讨论】:

    【解决方案3】:

    试试这样的东西,它对我有用,我也在我的本地主机上测试过。

    <form action="createDB.php" method="post">
        Server Name: <input type="text" name="servername">
        Database Name: <input type="text" name="databasename">
        User Name: <input type="text" name="username">
        Password: <input type="text" name="password">
        <input type="submit" value="submit" name="send">
    </form>
    

    PHP 脚本

    <?php
      if(isset($_REQUEST['send']))
      {
        $server = $_POST['servername'];
        $dbname = $_POST['databasename'];
        $user = $_POST['username'];
        $pwd = $_POST['password'];
    
        $con = mysql_connect($server,$user,$pwd);
        if (!$con)
        {
        die('Could not connect: ' . mysql_error());
        }
        if (mysql_query("CREATE DATABASE " . $dbname,$con))
        {
        echo "Database " .$dbname ." created!";
        }
        else
        {
        echo "Error creating database: " . mysql_error();
        }
        mysql_close($con);
      }
    ?>
    

    【讨论】:

    • @hanjaya ,我已经在我的 localhost 中测试了代码,在同一页面上定义了脚本 HTML 和 PHP 脚本。以及当您在同一页面上提交表单传递操作时。
    • 嗨,在同一页面上同时定义脚本和表单有什么好处吗?
    • 由于测试,我在同一页面上定义了脚本和表单,您也可以分别定义。
    猜你喜欢
    • 2012-10-18
    • 1970-01-01
    • 2014-09-03
    • 2012-04-01
    • 1970-01-01
    • 2013-03-27
    • 2013-08-05
    • 2016-01-03
    • 1970-01-01
    相关资源
    最近更新 更多