产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] 关于模块里面的pdo_mysql扩展错误

fifsky
铁牌会员
31.00 价值分

fifsky 发表于 2014-03-21 17:45:08
其实pdo_mysql早就被官方包含在php里面了,而且已经成为默认的mysql驱动,而pecl里面的pdo_mysql 1.0.2版本早就停止维护了,同样的问题在lnmp.org的一键安装包里面也有类似情况,我反馈之后lnmp已经修复了该问题,希望楼主也能注意到这个问题,老版本的pdo_mysql有很多BUG,不适合线上运行,详情可以看我的帖子
http://bbs.vpser.net/viewthread.php?tid=7288&highlight=%2Bfifsky


PDO执行有BUG数据库

$params = array(
'id' => 3589,
'blog_num' => 378383144,
);

$db = new PDO('mysql:host=localhost;dbname=test', 'root', 'password', array(PDO::ATTR_CASE=>PDO::CASE_LOWER,PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));


$stmt = $db->prepare("update music_blogs set id = :id, blog_num = :blog_num where id = :id");

$stmt->execute($params);

print_r($stmt->rowCount());

print_r($db->errorInfo());

这条语句在lnmp0.8下面执行无效 影响结果集为0 错误代码为执行成功的0000 说明执行成功了 但是blog_num字段并没有更新


本地apache php5.2.11,sae php5.3.8均执行通过

如果改为这样lnmp可以执行正确
$stmt = $db->prepare("update music_blogs set id = 3589, blog_num = :blog_num where id = :id");

不知道是不是lnmp的PDO版本有问题?



-------------------------------------------------------------------------------

神啊 我总算明白了 PDO 不应该从官方去下载的 官方已经不在维护pecl的PDO了 而PDO早已经被包含到phpX.X.X/ext/pdo_msql里面了
这个目录里面才是最新最稳定的 因此要去掉shell里面的
wget -c http://soft.vpser.net/web/pdo/PDO_MYSQL-1.0.2.tgz


以及后面的编译
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install
cd ../
否则 永远会将2006年老的BUG很多的PDO 覆盖到PHP扩展里面了

所以不应该去pecl拉 建议去掉centos.sh upgrade_php.sh里面的 pdo_mysql-1.0.2的编译 改为进入phpX.X.X/ext/pdo_mysql目录 然后编译

如下
进入lnmp目录
cd lnmp0.8-full/php-5.2.17/ext
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql

make
make install

然后重启php-fpm
/ect/init.d/php-fpm restart
2014-03-21 17:45:08 1

fifsky
铁牌会员
31.00 价值分

或者直接在编译PHP的时候加入--enable-pdo --with-pdo-mysql
  支持 (0分)  反对 (0分)
回复  2014-03-21 17:50:31 2

ali
银牌会员
3123.65 价值分

2006应该太老了 支持
  支持 (0分)  反对 (0分)
回复  2014-03-21 18:14:35 3

amysql
创始人
16530.81 价值分

谢谢反馈。pecl的确认很旧的了
  支持 (0分)  反对 (0分)
回复  2014-03-22 10:43:23 4

AMH面板 - 好用高效低占用、安全可靠极稳定

 1  (总1页)
AMH社区列表
用户服务中心