MS SQL データベースと対話するときに準備済みステートメントを使用できるように、Apache サーバーでPDOを起動して実行しようとしています。ライブラリがインストールされ、正常に接続されているようですが、テーブルから情報を返すことができません
$dbh = new PDO ("dblib:host=$hostname;dbname=$database","$username","$password");
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
$stmt = $dbh->prepare("SELECT * FROM asdf");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_COLUMN, 0);
print_r($result); //prints nothing
var_dump($stmt->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)); //prints nothing
戻り値
**array(0) { }**
しかし、これは
$dbh = new PDO("dblib:host=$hostname;dbname=$database", "$username", "$password");
} catch (PDOException $e) {
echo "Failed to get DB handle: ".$e - > getMessage()."\n";
}
$stmt = $dbh - > prepare("SELECT @@VERSION");
$stmt - > execute();
while ($row = $stmt - > fetch()) {
print_r($row);
}
unset($dbh);
unset($stmt);
コンピュータの詳細を印刷します。
Array ( [] => Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64) Apr 22 2011 19:23:43 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor) [0] => Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64) Apr 22 2011 19:23:43 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor) )
したがって、PDOはある程度機能していると思います。構文が悪いのでしょうか。