【发布时间】:2012-09-23 11:20:38
【问题描述】:
在现有系统上,它使用旧的 MySQL 函数。我想将其全部替换为 PDO,但这需要很长时间和大量测试。
是否可以在现有系统上混合使用 PDO 和 MySQL 函数?比如新的pages/php文件会使用PDO...所有的旧文件暂时还是会使用旧的MySQL,会随着系统的不断更新慢慢替换掉..
【问题讨论】:
-
+1 表示努力切换到 pdo。
在现有系统上,它使用旧的 MySQL 函数。我想将其全部替换为 PDO,但这需要很长时间和大量测试。
是否可以在现有系统上混合使用 PDO 和 MySQL 函数?比如新的pages/php文件会使用PDO...所有的旧文件暂时还是会使用旧的MySQL,会随着系统的不断更新慢慢替换掉..
【问题讨论】:
是的,可以同时使用两者。但请记住,您需要seperate connection for either type,并注意这种方法中的implications that arise。
【讨论】:
我是 SO 新手,但我也遇到过这个问题。很多人觉得从mysql_*切换到PDO很麻烦。
在我的例子中,我使用了一个单独的connection.php,它存储了连接到数据库的函数并返回了句柄
function connect()
{
$cn = mysql_connect("localhost","username","pass" );
$select = mysql_select_db("dbname", $cn);
return($cn);
}
//For PDO
function pdoconnect()
{
$db="";
try
{
$db=new PDO("mysql:host=localhost;dbname=dbname", "username", "pass");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $er)
{
print("errr".$er."<br />");
return(1);
}
return($db);
}
对于旧功能,我使用$cn=connect();。
我切换到$cn=pdoconnect(); 换新的。
这很有效,因为我已经在旧文件中使用了connect.php。
【讨论】:
$cn=connect(); 我切换到 $cn=pdoconnect(); - 你仍然需要替换 mysql_query() 到 PDO prepare(), execute() 功能对吗?