0

我正在尝试使用 CREATE DATABASE 命令创建数据库,但它却给了我一个错误。这是我的代码:

$db_usr = mysql_real_escape_string($_POST["email"]);
$con=mysql_connect("localhost","root");
if (! $con)
{
    die('Could not connect: ' . mysql_error());
}
else
{
    test();
}

function test()
{
    $sql = "CREATE DATABASE '$db_usr'";
    mysql_query($sql);
}

它总是返回“未定义的变量”

4

2 回答 2

6

在您的函数范围内无法访问该$db_user变量,这就是您收到该错误的原因。

如果您希望在函数内部使用变量,则将其作为函数参数传递,如下所示:

function test($db_usr)
{
    $sql = "CREATE DATABASE `$db_usr`";
    mysql_query($sql);
}

如果这涉及用户输入,那么您的数据库查询很容易受到 SQL 注入的攻击。您应该始终验证用户输入(推荐的方法是使用带有参数化查询的 MySQLi 或 PDO)。

于 2013-10-19T09:00:18.003 回答
0

另一种选择:

function test()
    {
        $db_usr = mysql_real_escape_string($_POST["email"]);
        $query= "create database ".$db_usr ."";
        $result = mysql_query($query);
    }
于 2013-10-19T10:46:35.080 回答