gpt4 book ai didi

mysql - mysqli只返回一行而不是多行

转载 作者:行者123 更新时间:2023-11-29 15:01:21 25 4
gpt4 key购买 nike

我对mysqli完全陌生,我采用了生成的代码并对其进行了调整以满足我的需要。

更新 :

public function getServeurByName($string) {

$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename where GSP_nom=?");
$this->throwExceptionOnError();

mysqli_stmt_bind_param($stmt, 's', $string);
$this->throwExceptionOnError();

mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();


$rows = array();

mysqli_stmt_bind_result($stmt, $row->idServ, $row->GSP_nom, $row->IPserv, $row->port, $row->tickrate, $row->membre, $row->nomPays, $row->finContrat, $row->actif, $row->timestamp, $row->type, $row->jeux, $row->slot, $row->ipClient, $row->essai, $row->reussite, $row->echec, $row->valide, $row->email);

while (mysqli_stmt_fetch($stmt)) {
$row->timestamp = new DateTime($row->timestamp);
$rows[] = $row;
$row = new stdClass();
mysqli_stmt_bind_result($stmt, $row->idServ, $row->GSP_nom, $row->IPserv, $row->port, $row->tickrate, $row->membre, $row->nomPays, $row->finContrat, $row->actif, $row->timestamp, $row->type, $row->jeux, $row->slot, $row->ipClient, $row->essai, $row->reussite, $row->echec, $row->valide, $row->email);
}

mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);

return $rows;
}


问题是,我在此示例中使用的模板仅返回一行而不是所有记录。

请问如何解决?

edit2:

print_r($row) show :
stdClass Object ( [idServ] => 0 [GSP_nom] => [IPserv] => [port] => 0 [tickrate] => 0 [membre] => [nomPays] => [finContrat] => [actif] => 0 [timestamp] => [type] => 0 [jeux] => 0 [slot] => 0 [ipClient] => [essai] => 0 [reussite] => 0 [echec] => 0 [valide] => 0 [email] => ) stdClass Object ( [idServ] => 0 [GSP_nom] => [IPserv] => [port] => 0 [tickrate] => 0 [membre] => [nomPays] => [finContrat] => [actif] => 0 [timestamp] => [type] => 0 [jeux] => 0 [slot] => 0 [ipClient] => [essai] => 0 [reussite] => 0 [echec] => 0 [valide] => 0 [email] => ) stdClass Object ( [idServ] => 0 [GSP_nom] => [IPserv] => [port] => 0 [tickrate] => 0 [membre] => [nomPays] => [finContrat] => [actif] => 0 [timestamp] => [type] => 0 [jeux] => 0 [slot] => 0 [ipClient] => [essai] => 0 [reussite] => 0 [echec] => 0 [valide] => 0 [email] => ) stdClass Object ( [idServ] => 0 [GSP_nom] => [IPserv] => [port] => 0 [tickrate] => 0 [membre] => [nomPays] => [finContrat] => [actif] => 0 [timestamp] => [type] => 0 [jeux] => 0 [slot] => 0 [ipClient] => [essai] => 0 [reussite] => 0 [echec] => 0 [valide] => 0 [email] => ) stdClass Object ( [idServ] => 0 [GSP_nom] => [IPserv] => [port] => 0 [tickrate] => 0 [membre] => [nomPays] => [finContrat] => [actif] => 0 [timestamp] => [type] => 0 [jeux] => 0 [slot] => 0 [ipClient] => [essai] => 0 [reussite] => 0 [echec] => 0 [valide] => 0 [email] => ) stdClass Object ( [idServ] => 0 [GSP_nom] => [IPserv] => [port] => 0 [tickrate] => 0 [membre] => [nomPays] => [finContrat] => [actif] => 0 [timestamp] => [type] => 0 [jeux] => 0 [slot] => 0 [ipClient] => [essai] => 0 [reussite] => 0 [echec] => 0 [valide] => 0 [email] => )


/
    print_r($ rows);表演

Array ( [0] => stdClass Object ( [idServ] => 190 [GSP_nom] => bc2x [IPserv] => 85.234.212.181 [port] => 27015 [tickrate] => 100 [membre] => [nomPays] => Belgique [finContrat] => 20111231 [actif] => 1 [timestamp] => DateTime Object ( ) [type] => 1 [jeux] => 1 [slot] => 34 [ipClient] => 81.240.221.92 [essai] => 6 [reussite] => 0 [echec] => 0 [valide] => 1 [email] => ) [1] => stdClass Object ( [idServ] => 191 [GSP_nom] => bc2x [IPserv] => 85.234.212.185 [port] => 27028 [tickrate] => 100 [membre] => LowReal [nomPays] => Belgique [finContrat] => 20111127 [actif] => 1 [timestamp] => DateTime Object ( ) [type] => 2 [jeux] => 1 [slot] => 11 [ipClient] => 81.240.221.92 [essai] => 6 [reussite] => 0 [echec] => 0 [valide] => 1 [email] => ) [2] => stdClass Object ( [idServ] => 192 [GSP_nom] => bc2x [IPserv] => 91.121.27.79 [port] => 27033 [tickrate] => 100 [membre] => LowReal [nomPays] => Belgique [finContrat] => 20110915 [actif] => 1 [timestamp] => DateTime Object ( ) [type] => 2 [jeux] => 1 [slot] => 11 [ipClient] => 81.240.221.92 [essai] => 6 [reussite] => 0 [echec] => 0 [valide] => 1 [email] => ) [3] => stdClass Object ( [idServ] => 443 [GSP_nom] => bc2x [IPserv] => 193.105.73.249 [port] => 27069 [tickrate] => 100 [membre] => [nomPays] => France [finContrat] => 20111231 [actif] => 1 [timestamp] => DateTime Object ( ) [type] => 2 [jeux] => 1 [slot] => 12 [ipClient] => 81.241.72.19 [essai] => 6 [reussite] => 2 [echec] => 6 [valide] => 1 [email] => lowreal@skynet.be ) [4] => stdClass Object ( [idServ] => 468 [GSP_nom] => bc2x [IPserv] => 213.246.45.17 [port] => 27005 [tickrate] => 100 [membre] => admin [nomPays] => France [finContrat] => 20110302 [actif] => 1 [timestamp] => DateTime Object ( ) [type] => 1 [jeux] => 1 [slot] => 12 [ipClient] => 127.0.0.1 [essai] => 0 [reussite] => 0 [echec] => 0 [valide] => 1 [email] => anxious@orange.fr ) [5] => stdClass Object ( [idServ] => 470 [GSP_nom] => bc2x [IPserv] => 213.246.45.17 [port] => 27005 [tickrate] => 100 [membre] => admin [nomPays] => Allemagne [finContrat] => 20110811 [actif] => 1 [timestamp] => DateTime Object ( ) [type] => 2 [jeux] => 1 [slot] => 12 [ipClient] => 127.0.0.1 [essai] => 0 [reussite] => 0 [echec] => 0 [valide] => 1 [email] => anxious@orange.fr ) ) 

最佳答案

我自己还没有使用过mysqli,但对我来说,问题似乎出在这里:

if(mysqli_stmt_fetch($stmt)) {
$row->timestamp = new DateTime($row->timestamp);
return $row;
} else {
return null;
}


也许是这样的(不能保证它无需修改就可以工作,并且肯定会通过返回一个空数组..来调整您的需求,从而打破您在0结果上返回null的约定):

$arr = array();
while (mysqli_stmt_fetch($stmt)) {
// copy data from $row to $arr
}
return $arr;


如果您在$ arr元素的内容上遇到问题,也许这里的讨论会有所帮助: http://php.net/manual/en/mysqli-stmt.fetch.php

关于mysql - mysqli只返回一行而不是多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3010936/

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