首页 > 解决方案 > PHP 错误提示:尝试在第 303 行获取 C:\code 中非对象的属性

问题描述

我正在尝试运行 PHP 代码,但出现以下代码错误 -

echo '<div class="container mt-4"><div class="row">'."\n";
            echo '<div class="col-md-4 mt-2">'."\n";
            echo '<h5>Basic figures</h5>'."\n";
            echo '<ul class="list-group">'."\n";

            echo "<li class='list-group-item'><i class='fa fa-database text-PMS'></i>&nbsp;Database:&nbsp;<span class='text-abc'>".$settingsProject['abc']['dbName']."</span></li>\n";

            $obj = json_decode(file_get_contents('http://'.$_SERVER['HTTP_HOST'].'/code/bin/db.php?function=getNumLocators&db='.$settingsProject['abc']['dbName']));
            echo "<li class='list-group-item'><i class='fa fa-hashtag text-PMS'></i>&nbsp;Num.locators:&nbsp;<span class='text-abc'>".$obj[0]->nLocators."</span></li>\n";

错误 -

Notice
: Trying to get property of non-object in
C:\code\htdocs\Tools.php
on line
303

直到昨天它工作正常,没有改变代码。但是卸载了一些旧版本的MSSQL并重新安装了dotNet Framework ...

这个问题看起来是重复的,但事实并非如此,我尝试了其他问题中的解决方案,但没有奏效,所以提出了这个问题。

有人可以帮我解决吗?

标签: phpsql-server

解决方案


我能够使用数据库名称前面的 NP 修复它,这是一个数据库连接问题。

我在 Google Chrome 检查元素中出现此错误-

SQLState = S1000, NativeError = -2146893022
Error = [Microsoft][ODBC Driver 13 for SQL Server]SQL Server Network Interfaces: The target principal name is incorrect.

我将代码更改如下:

公共函数 __construct($dbName) {

  $bd_server = 'NP:SQLSERVERNAME';


  try {
    $this->dbh = new PDO( "sqlsrv:Server=" . $bd_server . ";Database=" .$dbName, NULL, NULL); 

    $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  } catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
  }   }

刚刚 在服务器名前面加了NP$bd_server = 'NP:SQLSERVERNAME'; :, 你也可以试试TCP: $bd_server = 'TCP:SQLSERVERNAME';

我注意到的是,如果您卸载了 MSSQL 或 DotNetFramework 的某些组件,就会发生这种情况。

希望这可以帮助某人。


推荐阅读