首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么忽略MYSQLI_CLIENT_FOUND_ROWS?

为什么忽略MYSQLI_CLIENT_FOUND_ROWS?
EN

Stack Overflow用户
提问于 2014-02-05 02:57:17
回答 2查看 809关注 0票数 2

我使用mysqli将我的php代码连接到mysql,并使用MYSQLI_CLIENT_FOUND_ROWS选项来确保我的UPDATE语句将返回非零值,即使它们试图用已经持有的相同值更新记录。

代码语言:javascript
复制
$mysqli->real_connect(
            $this->DB_HOST,
            $this->DB_USERNAME,
            $this->DB_PASSWORD,
            $this->DB_DATABASE,
            3306,
            null,
            MYSQLI_CLIENT_FOUND_ROWS
    );

我现在安装了一个不起作用的新机器: php53 53,MySQL5.1.44- mysql发行版

在第一个框中,语句的'affected_rows‘是1,在第二个框中是0。

非工作箱的软件信息:

代码语言:javascript
复制
Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1

phpinfo for the non working box (我希望这里有足够的细节):mysql

代码语言:javascript
复制
MySQL Support   enabled
Active Persistent Links 0
Active Links    0
Client API version  5.1.44
MYSQL_MODULE_TYPE   external
MYSQL_SOCKET    /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
MYSQL_INCLUDE   -I/Applications/XAMPP/xamppfiles/include/mysql
MYSQL_LIBS  -L/Applications/XAMPP/xamppfiles/lib/mysql -lmysqlclient
Directive   Local Value Master Value
mysql.allow_local_infile    On  On
mysql.allow_persistent  On  On
mysql.connect_timeout   60  60
mysql.default_host  no value    no value
mysql.default_password  no value    no value
mysql.default_port  no value    no value
mysql.default_socket    /tmp/mysql.sock /tmp/mysql.sock
mysql.default_user  no value    no value
mysql.max_links Unlimited   Unlimited
mysql.max_persistent    Unlimited   Unlimited
mysql.trace_mode    Off Off
mysqli

MysqlI Support  enabled
Client API library version  5.1.44
Active Persistent Links 0
Inactive Persistent Links   0
Active Links    0
Client API header version   5.1.44
MYSQLI_SOCKET   /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Directive   Local Value Master Value
mysqli.allow_local_infile   On  On
mysqli.allow_persistent On  On
mysqli.default_host no value    no value
mysqli.default_port 3306    3306
mysqli.default_pw   no value    no value
mysqli.default_socket   /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
mysqli.default_user no value    no value
mysqli.max_links    Unlimited   Unlimited
mysqli.max_persistent   Unlimited   Unlimited
mysqli.reconnect    Off Off

working的php信息:

代码语言:javascript
复制
mysql
MySQL Support   enabled
Active Persistent Links 0
Active Links    0
Client API version  5.1.54
MYSQL_MODULE_TYPE   no value
MYSQL_SOCKET    /usr/local/zend/mysql/tmp/mysql.sock
MYSQL_INCLUDE   no value
MYSQL_LIBS  no value

Directive   Local Value Master Value
mysql.allow_local_infile    On  On
mysql.allow_persistent  On  On
mysql.connect_timeout   60  60
mysql.default_host  no value    no value
mysql.default_password  no value    no value
mysql.default_port  no value    no value
mysql.default_socket    /usr/local/zend/mysql/tmp/mysql.sock    /usr/local/zend/mysql/tmp/mysql.sock
mysql.default_user  zend    zend
mysql.max_links Unlimited   Unlimited
mysql.max_persistent    Unlimited   Unlimited
mysql.trace_mode    Off Off

mysqli

MysqlI Support  enabled
Client API library version  5.1.54
Active Persistent Links 0
Inactive Persistent Links   0
Active Links    0
Client API header version   5.1.54
MYSQLI_SOCKET   /usr/local/zend/mysql/tmp/mysql.sock

Directive   Local Value Master Value
mysqli.allow_local_infile   On  On
mysqli.allow_persistent On  On
mysqli.default_host no value    no value
mysqli.default_port 3306    3306
mysqli.default_pw   no value    no value
mysqli.default_socket   /usr/local/zend/mysql/tmp/mysql.sock    /usr/local/zend/mysql/tmp/mysql.sock
mysqli.default_user zend    zend
mysqli.max_links    Unlimited   Unlimited
mysqli.max_persistent   Unlimited   Unlimited
mysqli.reconnect    Off Off

你知道为什么吗?我在这里撞到头了.这不太可能是两个mysql之间的小版本号差异导致的……

EN

回答 2

Stack Overflow用户

发布于 2014-02-07 14:57:55

当使用启用了mysqlnd的php而不是mysql原生客户端时,它工作得很好。但由于种种原因,我无法重新构建PHP。我最终通过macports (port install php53 php53-mysql)安装了一个新的PHP来解决这个问题。

票数 0
EN

Stack Overflow用户

发布于 2014-08-26 03:10:29

而不是

代码语言:javascript
复制
MYSQLI_CLIENT_FOUND_ROWS

尝试使用整数

代码语言:javascript
复制
2

如下所示:

代码语言:javascript
复制
$mysqli->real_connect(
        $this->DB_HOST,
        $this->DB_USERNAME,
        $this->DB_PASSWORD,
        $this->DB_DATABASE,
        3306,
        null,
        2
);

它为我解决了问题...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21561015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档