gpt4 book ai didi

php - mysqli 免费结果未收到数据错误

转载 作者:行者123 更新时间:2023-11-29 23:51:52 25 4
gpt4 key购买 nike

我正在使用 OOP 概念,以便使用 mysqli 连接到我的数据库,但在这里我收到错误,“数据库查询不同步,您无法运行此命令” 这就是为什么我使用 mysqli free 结果,现在我没有收到任何数据作为输出。可能是什么错误?

下面是我的数据库连接类

class MySQLDatabase{
private $connection;
public $last_query;
private $magic_quotes_active;
private $real_escape_string_exists;

function __construct()
{
$this->open_connection();
$this->magic_quotes_active = get_magic_quotes_gpc();
$this->real_escape_string_exists = function_exists( "mysqli_real_escape_string" );
}


public function open_connection()
{
$this->connection=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME) ;
mysqli_set_charset($this->connection,"utf8");
if(!$this->connection)
{
die("database connecetion failed".mysqli_error($this->connection));
}
}

public function close_connection()
{
if(isset($this->connection))
{
mysqli_close($this->connection);
unset($this->connection);
}
}

public function fetch($result_set)
{
return mysqli_fetch_array($result_set);
}

public function query($sql)
{
$this->last_query=$sql;
$result=$this->connection->query($sql);

if(!$result)
{
die("database query failed ".mysqli_error($this->connection));
}
return $result;
}

public function free_result($result)
{
return $this->free_result($result);
}
}
$database=new MySQLDatabase();

这就是我调用我的程序的方式,但它给出输出,因为没有收到数据我不知道问题是什么

    $qryCallImgProc = "CALL description (".$postId.","."@commentOutput,@likeCount,@commentCount)";
$exeCallIgProc = $database->query($qryCallImgProc);
while($row = $database->fetch($exeCallIgProc))
{
print_r($row);
}

$database->free_result($exeCallIgProc);
$database->close_connection();

$qryLikeCount = "SELECT * from user";
$exeLikeCount = $database->query($qryLikeCount);
while ($fetchDetails = $database->fetch($exeLikeCount)) {
print_r($fetchDetails);
}

最佳答案

我没有足够的声誉。所以我无法添加评论。

我猜你的程序没有数据可返回。

您可以尝试添加

select 'flag' 

在程序结束时。

编辑:

我做了一个这样的程序测试:

create PROCEDURE test_procedure(
OUT totalCount INT
)
BEGIN
select 1 into totalCount;
select totalCount;
end

工作正常。

或者您可以使用这个:

$sql = $mysqli->query("call test_procedure(@output)");
$results = $mysqli->query ("select @output as totalCount");

希望可以帮到你。

关于php - mysqli 免费结果未收到数据错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25599392/

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