mysqli_real_string_escape因GET

时间:2015-09-05 19:01:42

标签: php mysqli mysql-real-escape-string

我在文件中建立了一个静态数据库连接,我将其作为

包含在内
include_once 'database.inc.php';

命名为$mysqli

当我使用$tbname从表单传递参数$tbname = $_GET['tbname']并尝试使用$tbname = $mysqli->real_esacpe_string($tbname)时,它会生成与$ tbname相同的输出,包括{{1}等无效字符时在名称中使用。

基于查看其他问题和正确用法,我找不到字符串转义失败的原因。如果程序调用用于/,'",它也会失败。

mysqli_real_escape_string($mysqli, $tbname)有效且函数没有字符串转义时,我的查询

$tbname

按预期工作。

1 个答案:

答案 0 :(得分:0)

  1. 没有理由使用此函数来转义表名,因此不应将其用于此目的。
  2. 没有理由从用户输入创建表,并且您不应该动态创建表,但始终具有可靠的预定义数据库结构。
  3. mysqli_real_escape_string转义这些符号\'"。但你永远不应该使用它。相反,你必须使用准备好的陈述