php检索数据库时先自己打印出来sql语句,然后提示Warning: mysql_fetch_row() expects parameter 1 to be
源码在这里,主要是来检索一个或者多个关键字的,提示是语法错了,但是不知道是哪里错了:<?phpinclude_once'mysql_config.php';$db=new...
源码在这里,主要是来检索一个或者多个关键字的,提示是语法错了,但是不知道是哪里错了:
<?php
include_once 'mysql_config.php';
$db=new mysql("localhost","root","","test","test");
if (@$_GET["key"]){
$key_word=explode(" ", $_GET["key"]);
$key_num=count($key_word);
$sql="SELECT * FROM test WHERE name LIKE '%$key_word[0]%'";
for ($i=0;$i<$key_num;$i++){
$replace[$i]="<font color=red><b>$key_word[$i]</b></font>";
}
//print_r($replace);
for ($j=0;$j<$key_num-1;$j++){
$key_tem=$key_word[$j+1];
$sql=$sql."or name LIKE '%$key_tem%' ";
}
$result=$db->query($sql);
while ($r=$db->fetch_row($result)){
for ($k=0;$k<$key_num;$k++){
$mode=$key_word[$k];
$r[1]=preg_replace("/$mode/i",$replace[$k], $r[1]);
}
echo $r[1]."<br>";
}
}
?>
<form action="" method="get">
关键字:
<input type="text" name="key">
<input type="submit" name="sub" value="全站检索">
</form> 展开
<?php
include_once 'mysql_config.php';
$db=new mysql("localhost","root","","test","test");
if (@$_GET["key"]){
$key_word=explode(" ", $_GET["key"]);
$key_num=count($key_word);
$sql="SELECT * FROM test WHERE name LIKE '%$key_word[0]%'";
for ($i=0;$i<$key_num;$i++){
$replace[$i]="<font color=red><b>$key_word[$i]</b></font>";
}
//print_r($replace);
for ($j=0;$j<$key_num-1;$j++){
$key_tem=$key_word[$j+1];
$sql=$sql."or name LIKE '%$key_tem%' ";
}
$result=$db->query($sql);
while ($r=$db->fetch_row($result)){
for ($k=0;$k<$key_num;$k++){
$mode=$key_word[$k];
$r[1]=preg_replace("/$mode/i",$replace[$k], $r[1]);
}
echo $r[1]."<br>";
}
}
?>
<form action="" method="get">
关键字:
<input type="text" name="key">
<input type="submit" name="sub" value="全站检索">
</form> 展开
3个回答
展开全部
一般这样的错误都是资源结果,这里是你的$query并没有获得到。往前找原因
追问
他执行错误之后,提示了语句,我把语句复制到数据库里面直接查询,能查询到结果
追答
那你就在程序里把结果一步步打印出来看看有没
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有了 'mysql_config.php';为什么还要$db=new mysql("localhost","root","","test","test");这句
你想用面向对象,又用错了
你想用面向对象,又用错了
追问
类名是mysql。。。。前面用到了包含文件
追答
那你可以在mysql里include_once 'mysql_config.php';啊
你这样写相当于打开了数据库2次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mysql_fetch_row()
这个函数少参,你去检查下你的mysql_config文件,看下有没有写错
这个函数少参,你去检查下你的mysql_config文件,看下有没有写错
追问
没有啊 源码:类太长了 只写函数
function fetch_row($query) {
return mysql_fetch_row($query);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询