我有以下代码:
$squery = "SELECT TABLE_SCHEMA,TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%configuration_lang'";
$sres = dbquery($squery);
while ($srow = mysqli_fetch_array($sres)) {
$vquery = 'SELECT value FROM `' . $srow["TABLE_SCHEMA"] . '`.' . $prefix . 'configuration WHERE name="PS_VERSION_DB"';
try {
$vres = @mysqli_query($conn, $vquery);
} catch (Throwable $t) {
continue;
}
$vrow = mysqli_fetch_array($vres);
...further processing
}
某些表存在缺陷,并在内部查询中抛出 1932 错误(“表不存在”)。我尝试用 catch 结构忽略这一点。
但是,发生的情况是我在下一个查询时会遇到相同的错误(
$srow=mysqli_fetch_array($sres)
)。
为什么会出现这种情况?我能做些什么吗?
这是一个 PHP 错误,已在 PHP 8.2.20 中得到修复。它自 PHP 7.4.26 起就存在。您只需将 PHP 安装升级到最新版本或至少是受支持的版本之一。