mysql_query()里面的Php变量

时间:2013-10-19 08:57:33

标签: php mysql

我正在尝试使用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);
}

它总是返回“Undefined variable”

2 个答案:

答案 0 :(得分:6)

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

如果你想在你的函数中使用变量,那么将它作为函数参数传递,如下所示:

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

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

答案 1 :(得分:0)

还有一个选择:

function test()
    {
        $db_usr = mysql_real_escape_string($_POST["email"]);
        $query= "create database ".$db_usr ."";
        $result = mysql_query($query);
    }