如何捕获错误并在 mysql 错误后继续

问题描述 投票:0回答:1

我有以下代码:

$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 mysql mysqli php-8.1
1个回答
0
投票

这是一个 PHP 错误,已在 PHP 8.2.20 中得到修复。它自 PHP 7.4.26 起就存在。您只需将 PHP 安装升级到最新版本或至少是受支持的版本之一。

© www.soinside.com 2019 - 2024. All rights reserved.