首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"real_escape_string“的问题

问"real_escape_string“的问题
EN

Stack Overflow用户
提问于 2015-03-04 09:17:36
回答 2查看 77关注 0票数 0

我的"real_escape_string“出了点问题,我需要一些帮助

login.php

代码语言:javascript
复制
<?php include('Connections/local.php'); ?>
<?php
function GetSQLValueString($sql) {
    $sql = $mysqli->real_escape_string($sql);
    return $sql;
}
?>

local.php

代码语言:javascript
复制
<?php
$hostname_local = "xxx";
$database_local = "xxx";
$username_local = "xxx";
$password_local = "xxx";
$mysqli = new mysqli($hostname_local, $username_local, $password_local, $database_local);
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
?>

错误是

代码语言:javascript
复制
Undefined variable: mysqli

我尝试了一些方法(比如在login.php中移动local.php的内容),但都不起作用

EN

回答 2

Stack Overflow用户

发布于 2015-03-04 11:20:36

你不能在你的函数中访问$mysqli。如果您愿意,可以在您的函数中添加global $mysqli;以使其可访问。或者,您可以将$mysqli作为参数传递。

票数 1
EN

Stack Overflow用户

发布于 2015-03-12 03:55:59

为什么不直接使用函数调用呢?

我的建议是,只要创建一个更简单(也更容易阅读)的函数"esc“,并在您需要转义任何与sql相关的内容时都可以使用它。

代码语言:javascript
复制
 function esc($string, $mysqli = false) {
    if (!$mysqli) global $mysqli;
    return mysqli_real_escape_string($mysqli,$string);
 }

然后只需执行以下操作即可使用此命令:

代码语言:javascript
复制
 $sql = esc($string); //if $mysqli is already set globally, and thus will be inherited by the function

或

代码语言:javascript
复制
 $sql = esc($string,$mysqli); //if $mysqli is to be passed into each func call
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28846099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档