我正在尝试运行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 ...
该问题看上去重复,但并非如此,我尝试了其他问题的解决方案,但没有成功,所以提出了这个问题。
有人可以帮我解决吗?
答案 0 :(得分:0)
我能够使用数据库名称的NP infront修复它,这是数据库连接问题。
我在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();
} }
只需在服务器名称$bd_server = 'NP:SQLSERVERNAME';
的前面添加 NP:
您也可以尝试 TCP: $bd_server = 'TCP:SQLSERVERNAME';
我注意到,如果您卸载了MSSQL或DotNetFramework的某些组件,则会发生这种情况。
希望这对某人有帮助。