2010-05-20 66 views
3

我正在阅读PHP和mySQL网页开发书籍,至今一直在使用过程式来完成所有PHP和MySQL。但后来它谈到了使用对象访问mysql。初学者有关使用OOP访问mysql的问题

This works for me: 
//I define $db so can connect 
$query="select * FROM testing"; 
$result=mysqli_query($db,$query); 
while($row=mysqli_fetch_array($result)){ 
    //echo the data 
} 

But when I try to do it with classes, it doesn't 
@ $db=new mysqli('localhost','root','','test'); 
if(mysqli_connect_errno()){ 
echo "ERROR:"; 
exit; 
} 
$query="select * FROM testing"; 
$result=$db->query($query); 
$row=$result->fetch_assoc(); 

我是否必须编写自己的类,以便定义查询和fetch_assoc的功能?或者是什么?

+1

有什么错误讯息? – gurun8 2010-05-20 03:30:36

+1

显示设置$ db的代码 – Galen 2010-05-20 03:33:50

+0

是的,你能告诉我们你是如何设置$ db的吗? – 2010-05-20 03:34:01

回答

1

你应该建立$db是这样的:

$db = new mysqli("db_server", "db_username", "db_password", "db_name"); 
+0

这样做OOP不需要我写一个类吗?我假设$ result = $ db-> query($ query);会知道什么 - >呢? – jpjp 2010-05-20 03:41:39

+0

'mysqli'类应该已经存在,并且它应该在构建时连接。它看起来像你的语法是正确的,你正在运行哪个版本的PHP? – 2010-05-20 03:43:34

+0

我正在运行5.3.1。看起来当我使用fetch_row($ result)时会抛出一个错误,但是当我使用fetch_assoc()时它会起作用。顺便说一句,感谢您的帮助! – jpjp 2010-05-20 03:46:19