2014-06-14 55 views
0

错误我有一个名为precios的数据库表,只有4列,第一列叫做codigo。这个想法是将实际的网页名称与codigo专栏中的数据进行比较。例如,我的实际网页名称被称为:... AC01.php,在该表中,codigo列包含一行AC01,其他列有价格,所以当PHP知道实际网页是AC01.php时,会输出价格与网页设计的几个部分中与该页面同名的行相关。在继续下面的步骤之前,我试图测试这个比较。如何修复“功能名称必须是字符串”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); 
+2

在'mysqli_query'之前有一个额外的'$'。 '$ result = $ mysqli_query($ link,$ query);'应该是'$ result = mysqli_query($ link,$ query);'。 –

+1

当您处理它时,请修复代码中的[SQL注入](http://bobby-tables.com)漏洞。用[MySQLi准备好的语句](http://www.php.net//manual/en/mysqli.quickstart.prepared-statements.php)重写代码,并保存你的网站免遭黑客攻击。 –

+0

在'mysqli_query'之前删除额外的'$'输出以下内容:'警告:mysqli_fetch_array()期望参数1是mysqli_result,布尔给出在... AC01.php在线4' –

回答

0

此行:

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

是错误的。您需要删除$。所以在你的情况下,它将是:

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

我做过了,请阅读原帖的所有评论。谢谢 –

相关问题