Php 如何应用mysqli_free_result()?
我将命令移出同步错误,这似乎通常通过释放以前查询的结果来解决,但我不确定如何将其应用到我的场景中 我曾尝试在php脚本的不同位置释放其他查询的结果,但错误没有解决。我发现的示例有一个格式为$result=$mysqli->query的查询,然后释放$result。我没有使用这种风格的结果,但如果我应该,我愿意修改我的方法 //检查活动检查表是否存在,如果不存在,则创建它 $activeExist=$mysqli->queryCALL测试'active'; 而$row=$activeExist->fetch\u行{ echo$行[0]; 错误日志$row[0]。\n\n,3,/var/tmp/my-errors.log; 如果$row[0]==2{ //$activeExist->free; $sql=如果不存在则创建表活动 id varchar10非空主键, title varchar100选择“$activeID”作为“id”,选择“$realname”作为“title”;; $mysqli->query$sql; dbTableGen.$sql中的error\u logActive then语句。\n\n,3,/var/tmp/my-errors.log; error\u logActive.$mysqli->errno..$mysqli->error。\n\n,3,/var/tmp/my-errors.log; //$mysqli->queryINSERT到活动值“$activeID”和“$realname”; } 否则{ dbTableGen中的error\u logActive else语句。\n\n,3,/var/tmp/my-errors.log; $mysqli->queryINSERT到活动值“$activeID”和“$realname”; } } } //mysqli_free_结果; mysqli_close$mysqli; 预期结果:创建一个名为active的表,如果该表不存在,则插入值;如果该表已经存在,则仅插入值Php 如何应用mysqli_free_result()?,php,mysqli,Php,Mysqli,我将命令移出同步错误,这似乎通常通过释放以前查询的结果来解决,但我不确定如何将其应用到我的场景中 我曾尝试在php脚本的不同位置释放其他查询的结果,但错误没有解决。我发现的示例有一个格式为$result=$mysqli->query的查询,然后释放$result。我没有使用这种风格的结果,但如果我应该,我愿意修改我的方法 //检查活动检查表是否存在,如果不存在,则创建它 $activeExist=$mysqli->queryCALL测试'active'; 而$row=$activeExist->
实际结果:命令不同步;您现在不能运行此命令我担心安全性/稳定性,因为您直接将变量写入迭代查询中,但通常只缓存调用结果,然后触发单个查询 此外,您应该始终尽可能减少到数据库的总行程。我建议只执行一个INSERT查询,而不是执行多个INSERT查询
$activeExist = $mysqli->query("CALL TEST('active')");
$call_results = $activeExist->fetch_all(); // or loop if you don't have this driver installed
foreach ($call_results as $row) {
echo $row[0];
error_log($row[0] ."\n\n", 3, "/var/tmp/my-errors.log");
if ($row[0] == "2") {
//$activeExist->free();
$sql = "CREATE TABLE IF NOT EXISTS active (
id varchar(10) NOT NULL PRIMARY KEY,
title varchar(100)) SELECT '$activeID' AS 'id', '$realname' AS 'title';";
$mysqli->query($sql);
error_log("Active then statement from dbTableGen " . $sql . "\n\n", 3, "/var/tmp/my-errors.log");
error_log("Active (" . $mysqli->errno . ") " . $mysqli->error ."\n\n", 3, "/var/tmp/my-errors.log");
//$mysqli->query("INSERT INTO active VALUES ('$activeID', '$realname')");
} else {
error_log("Active else statement from dbTableGen" . "\n\n", 3, "/var/tmp/my-errors.log");
$mysqli->query("INSERT INTO active VALUES ('$activeID', '$realname')");
}
}
正在调用的过程如下所示:创建过程TESTIN tablename VARCHAR15 BEGIN IF exists从信息\u SCHEMA.TABLES中选择table_name,其中table_name类似tablename,然后选择1;否则选择2;如果结束;END$$`为糟糕的格式表示歉意。学习…如果这不能解决问题,请告诉我,我会调整。