致命错误:调用未定义的方法PDO :: sqlsrv_prepare()

时间:2014-08-10 10:29:48

标签: php sql-server pdo prepared-statement

我知道我的问题是重复的,但我今天无法找到解决方案。我有两个文件数据库连接:

<?php
$serverName ="host\SQLEXPRESS";
 $usr="sa";
 $pwd="SysAdmin";
 $db="db_name";

//$connectionInfo = array("UID" => $usr, "PWD" => $pwd, "Database" => $db);

//$conn = sqlsrv_connect($serverName, $connectionInfo);

$conn = new PDO("sqlsrv:Server=host\SQLEXPRESS;Database=db_name", "sa", "SysAdmin");
?>

我的操作文件:

<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
require_once 'db1.php';

$name='11111';
$sql_user = $conn -> sqlsrv_prepare("SELECT * FROM table_name WHERE id= :name");

$sql_user -> sqlsrv_execute(array(':name' => $name));
while($row = sqlsrv_fetch_array($sql_user))
  {
echo $row['name'];

}
?>

我收到此错误:

Fatal error: Call to undefined method PDO::sqlsrv_prepare() on line 7 

1 个答案:

答案 0 :(得分:2)

PDO中不存在

sqlsrv_*

PDO-API在所有数据库驱动程序中都是相同的。这就是PDO背后的想法。

<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
require_once 'db1.php';

$name='11111';
$sql_user = $conn->prepare("SELECT * FROM table_name WHERE id= :name");
$sql_user->execute(array(':name' => $name));

$row = $sql_user->fetchAll();
var_dump($row);

<强>更新 只得到名称行:

$row = $sql_user->fetch(PDO::FETCH_ASSOC);
var_dump($row['name']);

PHP Manual PDOStatement::fetch

  

PDO :: FETCH_ASSOC:返回由返回的列名索引的数组   在结果集中