PDO + MySQL总是返回字符串,但是MsSQL呢? [英] PDO + MySQL always returns strings, but what about MsSQL?

查看:45
本文介绍了PDO + MySQL总是返回字符串,但是MsSQL呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用MySQL时,PDO始终以字符串形式返回字段值.使用其他数据库(例如MSSQL)时,PDO是否一致?

PDO always returns field values as strings when using MySQL. Is PDO consistent when using another database like MSSQL?

如果不是,是否有一个标志强制PDO总是返回字符串(出于一致性的目的)?还是更好地返回所有值的本机类型?

If not, is there a flag which forces PDO to always return strings (for purpose of consistency)? or better still to return native types for all values?

据我所知,Drupal使得使用PDO使用不同的数据库成为可能.它执行必要的转换,以使SQL语句与各种语法兼容.但是它如何处理查询结果中的数据类型?

From what I can tell, Drupal makes it possible to use different databases using PDO. It performs the necessary conversions to make SQL statements compatible with the varying syntaxes. But how does it deal with data types in query results?

推荐答案

如果要确保始终获取字符串,可以使用bindColumn()并为每一列指定数据类型

If you want to make sure that you always get strings you can use bindColumn() and specify the data type for each column

$sql = 'SELECT id, name FROM test';
$stmt = $dbh->query($sql);
/* Bind by column number */
$stmt->bindColumn(1, $id, PDO::PARAM_STR); //or PDO::PARAM_INT
$stmt->bindColumn(2, $name, PDO::PARAM_STR);
while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
  var_dump($id); var_dump($name);
}

这篇关于PDO + MySQL总是返回字符串,但是MsSQL呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆