Skip to content

Instantly share code, notes, and snippets.

@zither
Last active August 29, 2015 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zither/fbcb8d86b21da51eb9af to your computer and use it in GitHub Desktop.
Save zither/fbcb8d86b21da51eb9af to your computer and use it in GitHub Desktop.
PDO Test
<?php
$databaseUsername = "username";
$databasePassword = "password";
$databaseName = "pdo_bug_test";
// 打印 PDO 版本
$ext = new ReflectionExtension('pdo');
echo "PDO 版本:" . $ext->getVersion() . PHP_EOL;
// Mysql 测试数据
$sql = <<<TEST_SQL
SET NAMES utf8mb4;
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
DROP DATABASE IF EXISTS `$databaseName`;
CREATE DATABASE `$databaseName`;
USE `$databaseName`;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` char(100) NOT NULL,
`password` char(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `user`
(`id`, `email`, `password`)
VALUES
(1, 'test@qq.com', '123456789abcdefg');
TEST_SQL;
try {
$db = new PDO(
"mysql:host=localhost;port=3306;charset=utf8mb4",
$databaseUsername,
$databasePassword
);
$db->exec($sql);
$query = $db->prepare("SELECT * FROM `user` WHERE `email` = ? LIMIT 1");
// 直接绑定 false 作为查询参数
$email = false;
$query->bindParam(1, $email, PDO::PARAM_BOOL);
$query->execute();
$rows = [];
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$rows[] = $row;
}
// 打印查询结果
var_dump($rows);
} catch (Exception $e) {
echo $e->getMessage();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment