php - PDO + MySQL 总是返回字符串,但是 MsSQL 呢?

标签 php mysql sql-server pdo

当使用 MySQL 时,PDO 始终将字段值作为字符串返回。使用其他数据库(如 MSSQL)时 PDO 是否一致?

如果不是,是否有一个标志强制 PDO 始终返回字符串(为了一致性)?或者更好的是为所有值返回原生类型?

据我所知,Drupal 可以通过 PDO 使用不同的数据库。它执行必要的转换以使 SQL 语句与不同的语法兼容。但它如何处理查询结果中的数据类型?

最佳答案

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

$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);
}

关于php - PDO + MySQL 总是返回字符串,但是 MsSQL 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017354/

相关文章:

php - 来自多个 MySQL 表的单个 HTML 表

Php foreach - 除最后一个元素外,用逗号分隔每个循环

php - pg_query 结果包含字符串而不是整数、数字

php - 使一段代码在函数和类中工作

php - 外键没有与主键一起更新?

sql - 从存储过程中写出 HTML 并通过电子邮件发送

mysql - 部署到 Azure 中以破折号命名的 MySql 数据库

mysql - Drupal 7 DB 是否包含敏感信息?我可以与第 3 方共享转储吗?

sql-server - 使用全文索引来爬网二进制 blob

sql-server - 通过 putty 通过 SSH 转发 SQL Server ODBC