Firebird通过PDO的奇怪行为。
环境:
当我告诉没有工作时,我的意思是:
SELECT * FROM Users WHERE username = ?
与array($username)
- 工作SELECT * FROM Users WHERE username = :u
与array(':u' => $username)
- 不是(working =返回用户名字段等于$ username值的用户)
问题:
pdo
版本?
(我的phpinfo中只有启用Firebird / InterBase的PDO驱动程序)由于
这是我的测试代码:
$user = 'alex';
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$sql = 'SELECT * FROM Users WHERE username = :u';
$st = $pdo->prepare($sql);
$st->execute(array(':u' => $user));
$rows = $st->fetchAll(PDO::FETCH_ASSOC);
print_r($rows);
答案 0 :(得分:1)
我解决了一个问题,就是使用Mandriva包来源:
远程系统上的 urpmi
已配置为2010年的某个本地来源
责怪我们的管理员)
我删除了这个源代码,从远程包源重新安装php和pdo,现在一切正常!
我很高兴:)
感谢所有