mysql返回修改后

mysql返回修改后,第1张

mysql返回修改后的列_PDO Mysql驱动返回结果的列类型问题

PDO的Mysql驱动返回的结果中,所有的字段都是字符串

使用statement->getColumnMeta得到的列元信息,其中的pdo_type也表明是字符串。

php可以自动处理类型转换,比如整型和字符串,但是对于其他环境,比如传给其他平台(如flash),就要在其中一端进行类型转换,或者在协议中处理。另外,要基于查询结果的元信息构建自动化的数据处理,比如ORM,也就不方便了。

原因是,mysql驱动使用mysql_fetch_row函数取得结果集,它是个字符串数组,即所有列都是字符串方式的存储,并且没根据DB存储的类型进行转换,相应地,列的元数据也就都是字符串类型了;

另外,pdo本身的数据类型也有限,跟DB、DB客户端库函数的数据类型有差异,比如pdo没有浮点数类型。

根据pdo接口规范,只要修改mysql驱动中的两个回调函数就可以了:

<php

$sql = "select from gd_article";

$username = "username";

$password = "password";

$pdo = new PDO("mysql:host=hostname;dbname=defaultDBName", $username, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES gbk") );

$stmt = $pdo->prepare($sql);

$stmtexecute($sql);

$rowcount = $stmt->rowCount();

>

PHP 版本 <= 52 的常用连接方法为

$link = mysql_connect('mysql地址/localhost','root','root密码');

mysql_select_db('db1');    //选择一个数据库

mysql_query('set names utf8');    // 设置下数据库默认编码,避免写入/读取乱码

$res = mysql_query('select  from user');    // 执行sql 语句

$rows = array();

while($row = mysql_fetch_array($res)){

    $rows[] = $row;    // 循环 resouce 数据得到数组数据集合

}

print_r($rows);    // 最后一步输出数据列表

PHP 版本 >= 53 的常用连接方法为PDO形式,当然也可以使用52的连接方法。(PDO需开启 php_pdo_mysql 扩展)

$pdo = new PDO('mysql:host=地址/localhost;dbname=数据库名','root','root密码');

$pdo->exec('set names utf8');

$res = $pdo->query('select  from user');

$rows = array();

while($row = $res->fetch()){

$rows[] = $row;

}

print_r($rows);

大家学习php途中,建议使用53 版本以上以获得更好的php编程体验。

所以推荐pdo形式连接数据库,更安全快速。

本扩展自

PHP

550

起已废弃,并在将来会被移除。应使用

MySQLi

PDO_MySQL

扩展来替换之。参见

MySQL:选择

API

指南以及相关

FAQ

以获取更多信息。用以替代本函数的有:

mysqli_affected_rows()

PDOStatement::rowCount()

说明

int

mysql_affected_rows

([

resource

$link_identifier

=

NULL

]

)

取得最近一次与

link_identifier

关联的

INSERT,UPDATE

DELETE

查询所影响的记录行数。

参数

link_identifier

MySQL

连接。如不指定连接标识,则使用由

mysql_connect()

最近打开的连接。如果没有找到该连接,会尝试不带参数调用

mysql_connect()

来创建。如没有找到连接或无法建立连接,则会生成

E_WARNING

级别的错误。

返回值

执行成功则返回受影响的行的数目,如果最近一次查询失败的话,函数返回

-1。

如果最近一次 *** 作是没有任何条件(WHERE)的

DELETE

查询,在表中所有的记录都会被删除,但本函数返回值在

412

版之前都为

0。

当使用

UPDATE

查询,MySQL

不会将原值和新值一样的列更新。这样使得

mysql_affected_rows()

函数返回值不一定就是查询条件所符合的记录数,只有真正被修改的记录数才会被返回。

REPLACE

语句首先删除具有相同主键的记录,然后插入一个新记录。本函数返回的是被删除的记录数加上被插入的记录数。

"INSERT

ON

DUPLICATE

KEY

UPDATE"

这种情况的查询,当执行了一次

INSERT

返回的值会是

1;如果是对已经存在的记录执行一次

UPDATE

将返回

2。

以上就是关于mysql返回修改后全部的内容,包括:mysql返回修改后、php pdo 返回查询数据量、PHP如何读取MYSQL数据库的字段内容然后返回该行所有内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9361372.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存