gpt4 book ai didi

php - php函数Mysql输出错误

转载 作者:行者123 更新时间:2023-11-29 00:47:56 24 4
gpt4 key购买 nike

我的代码如下:

class Database  
{
private $db_host;
private $db_user;
private $db_pass;
private $db_name;
private $con;

public function __construct() {
$this->db_host = "localhost";
$this->db_user = "admin";
$this->db_pass = 'password';
$this->db_name = 'test';
$this->con = '';
}

public function connect() {
$db_name = "test";
$this->con = mysql_connect($this->db_host, $this->db_user, $this->db_pass);
}

public function select(){
$q = "SELECT name, city FROM customers;";
mysql_select_db($this->db_name, $this->con);
$result = mysql_query($q);
return mysql_fetch_assoc($result);
}
}


$db = new Database();
$db->connect();
$tempArray = Array();
$rs = $db->select('customers', 'name, suburb');
foreach ($rs as $row)
{
echo $rs['name'] . "<br>";
}

我表的数据是

name | city
--------------
Anne | Sydney
Jane | London

实际输出为:

Anne 
Anne

期望的输出是:

Anne
Jane

谁能告诉我我做错了什么。好像我错过了一些基本的东西。我已经阅读了 50 多篇文章,但似乎没有任何内容可以解释我做错了什么。

注意:这是我的代码的缩小版本。我打算用它来制作一个更通用的对象,从我的数据库中提取信息。

谢谢,

布雷特

最佳答案

您需要调用mysql_fetch_assoc 每一行。它只返回一行数据,而不是完整的数据集。例如,您可以将它移出到循环中:

class Database
{
/* ... */

public function select(){
$q = "SELECT name, city FROM customers;";
mysql_select_db($this->db_name, $this->con);
return mysql_query($q);
/* Remove your line here, returning the query result, not the first row */
}
}

$db = new Database();
$db->connect();
$tempArray = Array();
$result = $db->select('customers', 'name, suburb');
/* Note that I'm now using mysql_fetch_assoc to get each row from the result */
while ($row = mysql_fetch_assoc($result));
echo $row['name'] . "<br>";
}

您可以在那里使用 while 循环,因为在检索到最后一行之后,mysql_fetch_assoc 将返回 FALSE 并退出循环。

关于php - php函数Mysql输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com