关于php连接mysql函数

$db=newMySQLi("127.0.0.1","root","","shop");$db->query("setnamesgbk");functionselect_... $db=new MySQLi("127.0.0.1","root","","shop");$db->query("set names gbk");
function select_mycx($table,$by,$select_str,$number){
$sql="select * from ".$table." where ".$by."='".$select_str."'";
$result=$db->query($sql);
if($number=="1"){
$rows=$result->fetch_row();
}
else{
$rows=$result;
}
return $rows;
}
上面就是我自己些的一个数据库查询函数,但是在调用的时候提示错误
Notice: Undefined variable: db in C:\xampp\htdocs\shop\files\mysql.php on line 5

Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\shop\files\mysql.php on line 5

不清楚应该怎么修改,第一行的“$db=new MySQLi("127.0.0.1","root","","shop");$db->query("set names gbk");”
这个东西是没错的,我不用这个函数查询的话是这样的
$sql="select * from type where name='首页'";
$result=$db->query($sql);
$rows=$result->fetch_row();
也是没错的,这个不知道怎么搞的,请高手解答
展开
 我来答
windblast
2012-09-21 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13617
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
由于没有看到完整的代码,仅就看到的代码试作解答如下:

1. Notice: Undefined variable: db in C:\xampp\htdocs\shop\files\mysql.php on line 5
警告:未字义的变量db(第5行不太清楚是哪行代码)。

这个错误提示,从已知的代码来看,其原因应该是你在函数体里引用了一个函数体外定义的变量(db),从代码看其实就是没有注意到, 对于变量 作用域范围(全局、局部)错误应用的问题。

简单的说,函数 select_mycx 里找不到 db。

解决办法:

(1). 用参数传递进去。

function select_mycx($table,$by,$select_str,$number,$db)
{
.....
}

(2). 在参数体里定义全局变量引用:

function select_mycx($table,$by,$select_str,$number)
{
global $db;

....
}

2.Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\shop\files\mysql.php on line 5

这个错误实际上是上面的错误引起的,因为$db没有正确引入,所以再 query 当然不能正确执行。
追问
我对PHP也不精通,第五行是这行$result=$db->query($sql);
我只知道$db=new MySQLi("127.0.0.1","root","","shop");这个是PHP的一个函数,调用数据库的,把他写到个文件里面,引用require("mysql.php");
执行查询语句就是这样
$sql="select * from type where name='首页' ";
$result=$db->query($sql);
$rows=$result->fetch_row();
然后输出,如果有这张表只有两个字段,就是$rows[0] 和 $rows[1]
追答
不管是引用 require / include 还是其他的,错误的原因都是你需要正确区分变量的作用域。

建议:

function select_mycx($table,$by,$select_str,$number,$db)

这样修改就可以了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式