php - 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> Database: <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> Num.locators: <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 ...
这个问题看起来是重复的,但事实并非如此,我尝试了其他问题中的解决方案,但没有奏效,所以提出了这个问题。
有人可以帮我解决吗?
解决方案
我能够使用数据库名称前面的 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 的某些组件,就会发生这种情况。
希望这可以帮助某人。
推荐阅读
- pine-script - 如何仅绘制今天?
- javascript - 发送 Ajax 请求以将 Post 数据从一个 Url 发送到另一个 Url 而不会出现 CROS 错误
- php - 如何使用 php 从网站中仅提取文本数据?
- azure - 是否可以轻松地从 windows 迁移到 linux Azure App Service?
- jsf - JSF 页面导航中的下一页上未填充数据
- c# - 在 Linq 中查询静态类型
- .net - WinSCP 等待 WinSCP 响应超时
- sql - “C:\DBs\BlogAppDB.mdf”指定的路径不在有效目录中
- reactjs - React.js 页面不切换
- java - 使用 Jenkins 将二进制文件与 JAR 文件一起发布到 Maven 工件