【发布时间】:2016-04-06 23:49:40
【问题描述】:
我目前有 PHP 5.3,需要至少升级到 PHP 5.5/5.6。我有一个页面发布出租物业的平均值。有一段时间我不使用mysql,但是当我升级时,需要使用mysqli。下面是我尝试在 PDO 中编写的代码。
$hostname = "your_hostname";
$username = "your_username";
$password = "your_password";
$db = "database";
$dbh = new PDO("mysql:host=$server;dbname=$db", $user, $pass);
foreach ($dbh->query("SELECT MAX(rent) FROM table WHERE PType ='$PType' AND PState = '$state'") as $row) {
$SMR = "" . $row['MAX(rent)'] . "";
}
这适用于 PHP 5.3,但不适用于 PHP 5.5/5.6。我尝试将$dbh 行更改为:
$dbh = new PDO("mysqli:host=$server;dbname=$db", $user, $pass);
错误日志出现驱动程序错误。
有没有更好的方法?
【问题讨论】:
-
您可以从日志中发布驱动程序错误吗?另外,我看不到您在哪里设置了
$server变量。看起来您在$hostname和$server之间不匹配。还有你的其他变量。这是您使用的实际代码吗? -
您不需要在
PDO初始化中将mysql更改为mysqli。PDO已经在后台使用了现代客户端库,而这个mysql与您不应再使用的mysql_*()函数无关。你绝对可以继续使用new PDO('mysql:...')。当您尝试使用以前使用的相同代码时,您遇到了哪些错误?