“如何修复”;函数名必须是字符串";PHP中的错误

“如何修复”;函数名必须是字符串";PHP中的错误,php,error-handling,Php,Error Handling,我有一个名为precios的数据库表,只有4列,第一列名为codigo。我们的想法是将实际的网页名称与codigo列中的数据进行比较。例如,我的实际网页名为:…AC01.php,在表中,codigo列包含一行AC01和其他带有价格的列,因此当php知道实际网页是AC01.php时,将在网页设计的几个部分中输出与页面同名的行相关的价格。在继续执行以下步骤之前,我尝试测试这个比较 这是我的实际代码: $pageName=basename($_SERVER['REQUEST_URI'], ".php"

我有一个名为precios的数据库表,只有4列,第一列名为codigo。我们的想法是将实际的网页名称与codigo列中的数据进行比较。例如,我的实际网页名为:…AC01.php,在表中,codigo列包含一行AC01和其他带有价格的列,因此当php知道实际网页是AC01.php时,将在网页设计的几个部分中输出与页面同名的行相关的价格。在继续执行以下步骤之前,我尝试测试这个比较

这是我的实际代码:

$pageName=basename($_SERVER['REQUEST_URI'], ".php"); (tested, works!)
$link=mysqli_connect('localhost','%%%','%%%'); (tested, connection works!)

/*checking connection*/
if(mysqli_connect_errn()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}

$query="SELECT * FROM precios WHERE codigo='$pageName'";
$result=mysqli_query($link, $query);
$row=mysqli_fetch_array($result);
echo $row;

mysqli_close($link);
这是我收到的错误消息:

Fatal error: Function name must be a string in ...AC01.php on line 40.
从Dreamweaver中,我可以看到第40行如下:

 $result=$mysqli_query($link, $query);
这一行:

$result=$mysqli_query($link, $query);
这是错误的。您需要删除$。因此,在您的情况下,它将是:

$result= mysqli_query($link, $query);

mysqli\u查询
之前,您有一个额外的
$
<代码>$result=$mysqli\u查询($link,$query)应该是
$result=mysqli\u query($link,$query)。当您执行此操作时,请同时修复代码中的漏洞。用重写代码,并保存您的网站免受黑客攻击。在
mysqli_查询
之前删除额外的
$
会输出以下内容:
警告:mysqli_fetch_array()预期参数1为mysqli_result,布尔值在第4行的…AC01.php中给出
我认为错误消息是不言自明的
mysqli\u fetch\u array()
需要一个MySQL结果对象,但它接收的是一个布尔值。这是从哪里来的?当然是从
mysqli\u query()
开始的,因为它返回一个布尔值,这取决于查询是否成功。这是什么意思?这意味着您的查询可能失败。您需要使用错误处理函数(
mysqli\u error($link)
)并查看查询的错误。始终检查返回值,并假设失败。因此,
$result
只是说:“我是真的”。。。我懂了。感谢@AmalMuraliI对我的帮助,请阅读原始帖子的所有评论。谢谢