-1
通過PDO與Firebird發生奇怪的行爲。PDO名爲準備好的語句不起作用
環境:
- 在我的本地機器(Ubuntu的12.04)都正常工作。
- 在遠程計算機(舊的Mandriva [內核2.6.33.7-服務器2mnb])
只有無名PDO報表工作... - php5.3.14上都
當我告訴沒有奏效,我的意思是:
SELECT * FROM Users WHERE username = ?
與array($username)
- 工作SELECT * FROM Users WHERE username = :u
與array(':u' => $username)
- 不
(工作=返回與用戶名字段用戶等於$用戶名值)
問題:
- 有這種行爲任何人的經驗?
- 我應該在哪裏尋找
pdo
版本? (我只有PDO驅動程序火鳥/的InterBase在我的phpinfo啓用)
感謝
這裏是我的測試代碼:
$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);
後的代碼,而不是一些草圖 –
是否PDO ::的setAttribute(PDO :: ATTR_EMULATE_PREPARES,真正的);對此有什麼影響? – Ivarpoiss
'當我說不工作時,我的意思是' - 你應該指什麼特別不行,詳細解釋它,而不是隻用一個三個字母的單詞「不」。 –