我正在尝试将很多旧的PHP mysql prodecural函数(如mysql_query
,mysql_real_escape_string
等)迁移到PDO中,并且尽力而为。我不想重写每个旧的DB函数。原因是它是一个旧的应用程序,我正在开发一个新的模块,并希望在那里使用PDO。
所以现在我将这些旧函数移植到PDO方法中 - 我将_port
添加到我的旧函数中,因此我使用mysql_query_port
,mysql_fetch_array_port
,mysql_num_rows_port
和{{ 1}}。
前三个效果非常好:
mysql_real_escape_string_port
问题在于function mysql_query_port($query) {
$db = Database::instance();
$statement = $db->prepare($query);
if (!$statement->execute())
return false;
return $statement;
}
function mysql_fetch_array_port(PDOStatement $statement) {
return $statement->fetch();
}
function mysql_num_rows_port(PDOStatement $statement) {
return $statement->rowCount();
}
- 当我没有mysql连接时,我无法使用它。所以请帮我决定做什么(或者在我的代码中找到错误):
mysql_real_escape_string
初始化,以便我仍然可以使用mysql_pconnect()
(我不会通过该连接进行任何查询)。
mysql_real_escape_string
您怎么看?
答案 0 :(得分:0)
mysql_real_escape_string
需要连接,因为它的输出取决于连接字符集。
如果您能够手动同步字符集(或者如果您从未更改过字符集),您可以编写自己的实现。