mysql_query() 中的 Php 变量

标签 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 ”

最佳答案

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

如果你想在你的函数中使用变量,那么将它作为函数参数传递,就像这样:

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

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

关于mysql_query() 中的 Php 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19464263/

相关文章:

debian - 获取 php 中 cpu 使用率

php - 在php中用特殊字符对数组进行排序

php - 为什么这种使用 PDO 计算 Mysql 行数的方法不起作用?

mysql。以独占方式查询与两个主表相关的明细表

MYSQL - 错误代码 : 1415. 不允许从函数返回结果集。存储功能尝试

php - 我怎样才能防止这个脚本被随意访问?

php - 从html查找所有单词(或句子)

php - MySQL 计算列滞后返回

php - 用json php mysqli查看标签表中的数据

mysql - 解决: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)