gpt4 book ai didi

php - 使用带有 PDO 的 mysql_real_escape_string(没有连接到本地主机服务器)

转载 作者:行者123 更新时间:2023-11-29 01:05:54 32 4
gpt4 key购买 nike

所以我相当偏执,将 mysql_real_escape_string() 与 PDO 一起使用。我实际上并没有在 PDO 中使用准备好的语句,所以我必须清理输入。

当托管在我自己的服务器上时,我会在本地机器上创建一个非特权用户,这样 mysql_real_escape_string() 就不会失败并清空我的变量(呵呵,现在就是 sanitizer !)。我意识到这是一个非常失败的解决方案,因为如果数据库没有匹配的字符集,那么清理就没有意义了,但它在过渡期间有效。

现在在我的新主机上,我无法为数据库创建一个未设置密码的非特权用户...并且 mysql_real_escape_string() 失败,因为本地计算机上没有 mysql 服务器。我无法编辑 php.ini 来设置默认数据库的主机名/用户/密码。

我能做什么?

在我写这篇文章时集思广益,我想知道 php 是否允许运行时更改配置……也许……hrm。编辑:嗯……ini_set()? :O

最佳答案

像这样混合两个数据库是个坏主意,而且可能不安全。

mysql_real_escape_string() 需要现有的经典 mysql_connect() 数据库连接(它可以从中获取字符集信息)才能完全安全。 PDO 连接将是独立的,可能具有不同的字符集设置,最终导致 less security :

A MySQL connection is required before using mysql_real_escape_string() otherwise an error of level E_WARNING is generated, and FALSE is returned. If link_identifier isn't defined, the last MySQL connection is used.

一直用PDO,没办法。

如果您不想使用准备好的语句,PDO::quote应该是正确的功能:

Returns a quoted string that is theoretically safe to pass into an SQL statement.

但是请注意,即使是该函数的手册页也建议改用准备好的语句。

关于php - 使用带有 PDO 的 mysql_real_escape_string(没有连接到本地主机服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191801/

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