had oop 链接mysql_使用PHP OOP概念连接到MySQL数据库

我正在编写一个类和一些函数来连接数据库并从表中检索信息.我浏览过以前有类似标题的帖子,但大多数都是使用mysql函数编写的,我使用的是mysqli函数.

我希望有人可以通过这个简单的脚本让我知道我在哪里弄错了.

这是我的class.connect.php:

class mySQL{

var $host;

var $username;

var $password;

var $database;

public $dbc;

public function connect($set_host, $set_username, $set_password, $set_database)

{

$this->host = $set_host;

$this->username = $set_username;

$this->password = $set_password;

$this->database = $set_database;

$this->dbc = mysqli_connect($this->host, $this->username, $this->password, $this->database) or die('Error connecting to DB');

}

public function query($sql)

{

return mysqli_query($this->dbc, $sql) or die('Error querying the Database');

}

public function fetch($sql)

{

$array = mysqli_fetch_array($this->query($sql));

return $array;

}

public function close()

{

return mysqli_close($this->dbc);

}

}

?>

这是我的index.php:

require_once ("class.connect.php");

$connection = new mySQL();

$connection->connect('localhost', 'myDB', 'joker', 'names_list');

$myquery = "SELECT * FROM list";

$query = $connection->query($myquery);

while($array = $connection->fetch($query))

{

echo $array['first_name'] . '
';

echo $array['last_name'] . '
';

}

$connection->close();

?>

我收到错误说错误查询数据库.

解决方法:

问题是:

public function fetch($sql)

{

$array = mysqli_fetch_array($this->query($sql));

return $array;

}

或这个:

while($array = $connection->fetch($query))

因为您正在使用查询的结果再次进行查询.基本上,你在做:

$r = mysqli_query($this->dbc, $sql);

$array = mysqli_fetch_array(mysqli_query($this->dbc, $r));

并且您收到错误,因为$r不是查询字符串.当它被转换为字符串时,它是一个“1”(来自你的其他评论).

尝试将函数更改为(更改变量名称,以便您可以看到差异):

public function fetch($result)

{

return mysqli_fetch_array($result);

}

或者直接调用该函数.

标签:php,function,oop,mysqli

来源: https://codeday.me/bug/20190726/1540772.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值