相关疑难解决方法(0)

PDO MySQL:是否使用PDO :: ATTR_EMULATE_PREPARES?

这是我到目前为止所读到的PDO::ATTR_EMULATE_PREPARES:

  1. PDO的准备仿真对性能更好,因为MySQL的本机准备绕过了查询缓存.
  2. MySQL的本机准备更好于安全性(防止SQL注入).
  3. MySQL的本机准备更适合错误报告.

我不知道这些陈述是多么真实.选择MySQL接口时我最担心的是阻止SQL注入.第二个问题是表现.

我的应用程序目前使用过程MySQLi(没有预处理语句),并且使用了很多查询缓存.它很少会在单个请求中重复使用预准备语句.我开始转向PDO以获取已准备好的语句的命名参数和安全性.

我正在使用MySQL 5.1.61PHP 5.3.2

我应该PDO::ATTR_EMULATE_PREPARES启用还是不启用?有没有办法既具有查询缓存的性能又具有预准备语句的安全性?

php mysql pdo

113
推荐指数
7
解决办法
5万
查看次数

PHP + PDO + MySQL:我如何从PHP中返回整数和数字列作为整数和数字?

我已经在Stack Overflow上重复了几次这个问题,但是没有一个能够充分探索这个问题(或者至少以一种对我有帮助的方式)

问题是数据库查询应该在PHP中为整数列返回整数数据类型.相反,查询将每列作为字符串类型返回.

我确保"PDO :: ATTR_STRINGIFY_FETCHES"为false,以确保结果不会被转换为字符串.

我见过的答案:

  • 它无法完成
    • 不,它正在Mac OS X上安装PHP/MySQL
  • 在代码中输入所有值
    • 不,我不会这样做
  • 不要担心,PHP是松散的类型
    • 我的数据输出为JSON并被许多其他服务使用,有些需要正确格式的数据

根据我的研究,我了解这是一个驱动程序实现问题.

许多消息来源声称MySQL本机驱动程序不支持返回数字类型.这似乎不正确,因为它适用于Mac OS X.除非他们的意思是" Linux上的MySQL本机驱动程序不支持该功能".

这意味着我在Mac OS X上安装的驱动程序/环境有一些特殊之处.我一直在尝试识别差异以便应用修复,但我受限于我对如何检查这些内容的了解.

差异:

  • OS X上的PHP是通过Home Brew编译和安装的
  • Ubuntu上的PHP是通过"apt-get install php5-dev"安装的
  • OS X上的PHP连接到也在OS X上运行的MySQL服务器
    • 服务器版本:5.1.71-log源分发
  • Ubuntu上的PHP连接到Rackspace云数据库
    • 服务器版本:5.1.66-0 + squeeze1(Debian)

Ubuntu环境

  • 版本:10.04.1
  • PHP 5.4.21-1 + debphp.org~lucid + 1(cli)(内置:2013年10月21日08:14:37)
  • php -i

    PDO_MYSQL

    用于MySQL的PDO驱动程序=>已启用客户端API版本=> 5.1.72

Mac OS X环境

  • 10.7.5
  • PHP 5.4.16(cli)(内置:2013年8月22日09:05:58)
  • php -i

    PDO_MYSQL

    用于MySQL的PDO驱动程序=>启用客户端API版本=> mysqlnd 5.0.10 - 20111026 - $ Id:e707c415db32080b3752b232487a435ee0372157 $

使用PDO标志

PDO::ATTR_CASE => PDO::CASE_NATURAL,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS …
Run Code Online (Sandbox Code Playgroud)

php mysql macos ubuntu pdo

76
推荐指数
2
解决办法
2万
查看次数

PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

当您获取时,PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组,即使列的 SQL 类型本应是数字类型(例如 int 或 float)。我设法解决了这个问题,但我想了解为什么它们一开始就这样设计。是不是因为PDO本身不支持(或者之前不支持)?

php mysql sql-server pdo

5
推荐指数
1
解决办法
1840
查看次数

标签 统计

mysql ×3

pdo ×3

php ×3

macos ×1

sql-server ×1

ubuntu ×1