在pdo链接mysql的option中增加以下属性
PDO::ATTR_EMULATE_PREPARES => false,表示提取的时候是否将数值转换为字符串
PDO::ATTR_STRINGIFY_FETCHES => false, 启用或禁用预处理语句的模拟。
完成代码如下
<?php
$db = array(
'host' => '127.0.0.1', //设置服务器地址
'port' => '3306', //设端口
'dbname' => 'test', //设置数据库名
'username' => 'root', //设置账号
'password' => 'sdfsdklfjsfsl', //设置密码
'charset' => 'utf8', //设置编码格式
'dsn' => 'mysql:host=127.0.0.1;dbname=test;port=3306;charset=utf8', //这里不知道为什么,也需要这样再写一遍。
);
//连接
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //默认是PDO::ERRMODE_SILENT, 0, (忽略错误模式)
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // 默认是PDO::FETCH_BOTH, 4
PDO::ATTR_EMULATE_PREPARES => false,//表示提取的时候是否将数值转换为字符串
PDO::ATTR_STRINGIFY_FETCHES => false,// 启用或禁用预处理语句的模拟。
);
try {
$pdo = new PDO($db['dsn'], $db['username'], $db['password'], $options);
}catch(PDOException $e) {
die('数据库连接失败:' . $e->getMessage());
}
网友回复