gpt4 book ai didi

php - 尝试解决 mysqli_real_escape_string

转载 作者:行者123 更新时间:2023-11-29 18:52:18 26 4
gpt4 key购买 nike

所以目前我的代码采用程序格式,因此为了防止自己在 mysqli_real_escape_string 函数中添加“链接”,我创建了一个如下所示的方法:

    // Used to create a legal SQL string that you can use in an SQL statement in place of mysqli_real_escape_string
public function escape_string($string) {
$newstring = mysqli_real_escape_string($this->dbconn, $string);
return $newstring;
}

当我使用它时,虽然我没有得到任何结果,但如果您有任何建议,请告诉我。

以下是我使用该函数的一些示例:

function email_exists($email,$dblayer){

$sql = "SELECT `id` FROM `users` WHERE `email` = '" . $dblayer->escape_string($email) . "'";

$results = $dblayer->select_query($sql);

if($results){

return true;

}else{

return false;

}

还有这个:

public function pass_reset($email){

$newpass = substr(md5(mt_rand(1,99999)),0,8);

$newpasshash = md5($newpass . '************');

$sql = "UPDATE `admin_users` SET `password` = '" . $newpasshash . "' WHERE `username` = '" . $this->dblayer->escape_string($email) . "'";

$this->dblayer->modify_query($sql);

return $newpass;

}

这是围绕另一个名为 dbobject 的 dblayer 创建的:

                case $range:

$dates = explode(',',$_GET['search-string']);

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM `user_profile` WHERE `created` BETWEEN '" . $dates[0] . "' AND '" . $dates[1] . "'";

break;

default:

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM `user_profile` WHERE `" . $_GET['search-field'] . "` LIKE '%" . $dbobject->escape_string($_GET['search-string']) . "%'";



break;

最佳答案

看来问题可能有两个方面。首先,我希望您的 $this->dbconnNULL。这可能会mysqli_real_escape_string返回NULL。这意味着您的 SQL 可能正在寻找空字符串。

验证这一点的最佳方法是检查连接是否为 NULL 或检查您正在运行的 SQL。你看到很多''吗?然后您将连接 null。

但是,唯一可能发生的情况是您抑制了错误报告。当您开发时,您应该打开错误。有关于如何显示错误的信息 in this question .

关于php - 尝试解决 mysqli_real_escape_string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44316917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com