我在一个文件中建立了一个静态数据库连接,我将其包含为
include_once 'database.inc.php';名字叫$mysqli。
当我使用$tbname = $_GET['tbname']从表单传递参数$tbname并尝试使用$tbname = $mysqli->real_esacpe_string($tbname)时,它会生成与$tbname相同的输出,包括在名称中使用无效字符(如/,'" )时。
基于查看其他问题和正确的用法,我找不到字符串转义失败的原因。如果过程调用用于mysqli_real_escape_string($mysqli, $tbname),它也会失败。
当$tbname有效并且不是由函数进行字符串转义时,我的查询
query = $mysqli->prepare("CREATE TABLE $tbname (ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY)") or trigger_error($mysqli->error."[$query]");按预期工作。
发布于 2015-09-06 03:11:32
\'"确实可以转义这些符号\'"。但是你永远不应该使用它。相反,您必须使用预准备语句https://stackoverflow.com/questions/32416687
复制相似问题