空的 PDO MSSQL 错误查询

Posted

技术标签:

【中文标题】空的 PDO MSSQL 错误查询【英文标题】:PDO MSSQL error query on null 【发布时间】:2015-08-23 18:24:23 【问题描述】:

我正在尝试从我的数据库表中选择行,但我收到一条错误消息,指出

Fatal error: Call to a member function query() on null in..

我们与数据库的连接显示成功。下面是我的php代码:

<?php
   require_once("dbconn.php");
   $db = getConnection();

   $input_pid = "870104-07-5448";
   $sql = "SELECT * FROM Pat WHERE PID ='$input_pid'";
   $stmt = $db->query($sql);
   $row = $stmt->fetchObject();
   echo $row->PID;
   echo $row->Name;
?>

这是 dbconn.php 代码:

function getConnection()
try 
    $hostname = "busctrlctr-pc";
    $dbname   = "DispenserSystem";
    $username = "sa";
    $password = "123456";
    $db = new PDO ("sqlsrv:Server=$hostname;Database=$dbname", $username, $password);
    echo 'We are succesful to connect the database !!'.'<br>'; // successful word
 catch (PDOException $e)
    echo "connection failed problem is >> ". $e -> getMessage()."\n";
    exit;

我能知道为什么我会收到这个错误吗?谢谢。

【问题讨论】:

getConnection() 中有什么内容? 发布您的dbconn.php 文件代码 php.net/manual/en/ref.pdo-dblib.php 看看这个 您的连接似乎无法建立。 @b0s3 我已经在问题中发布了我的 db conn 代码 【参考方案1】:

你永远不会在你的函数getConnection()中返回$db

将函数改为:

function getConnection()
try 
    $hostname = "busctrlctr-pc";
    $dbname   = "DispenserSystem";
    $username = "sa";
    $password = "123456";
    $db = new PDO ("sqlsrv:Server=$hostname;Database=$dbname", $username, $password);
    echo 'We are succesful to connect the database !!'.'<br>'; // successful word
    return $db;
 catch (PDOException $e)
    echo "connection failed problem is >> ". $e -> getMessage()."\n";
    exit;


【讨论】:

以上是关于空的 PDO MSSQL 错误查询的主要内容,如果未能解决你的问题,请参考以下文章

将空字符串绑定到 pdo 准备好的查询时 HY104 Sql server 错误

pdo 在字符串连接中准备

通过 php 中的 PDO 将 xampp 连接到在线 MSSQL 数据库

PDO 存储过程返回值

无法使用 PDO 插入 MySQL 数据库....没有错误

PHP + MSSQL 使用 PDO,命名参数不是“?”