VPS侦探论坛

 找回密码
 注册
查看: 6412|回复: 2

PDO执行有BUG

[复制链接]
发表于 2012-4-12 15:28:38 | 显示全部楼层 |阅读模式

数据库

$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版本有问题?
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2012-4-12 15:49:47 | 显示全部楼层


这个不太清楚,安装方法和程序版本都是按官网的
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2012-4-12 16:45:27 | 显示全部楼层

神啊   我总算明白了   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
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-11-17 04:45 , Processed in 0.025568 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表