この行で致命的なエラーが発生することがあります
$result = $db->execute($query);
$primary = $result->getRows();
致命的なエラー: 非オブジェクトでのメンバー関数 getRows() の呼び出し
このエラーをキャッチしてインデックス ページにリダイレクトする解決策を探しています。
システムが古いため、何かを書き直すのは複雑です。
この行で致命的なエラーが発生することがあります
$result = $db->execute($query);
$primary = $result->getRows();
致命的なエラー: 非オブジェクトでのメンバー関数 getRows() の呼び出し
このエラーをキャッチしてインデックス ページにリダイレクトする解決策を探しています。
システムが古いため、何かを書き直すのは複雑です。
$db が何であるかを知る必要があります。$db が初期化されるコードが含まれていないか、これが何を参照しているかを通知されていません。
PDO ライブラリを使用していると仮定すると、PDO オブジェクト自体には PDO::exec() があり、PDOStatement オブジェクトには PDOStatement::execute() があります。したがって、$db は PDOStatement のインスタンスであり、execute() メソッドを呼び出すと仮定します。このメソッドはブール値を返し、失敗すると false を返し、成功すると true を返します。成功するとオブジェクトを返しません。成功した場合は、$db->fetchAll(); を呼び出す必要があります。
if (!$db->execute($query)) {
header("Location: error.php");
exit;
}
$rows = $db->fetchAll();
「header already sent」というエラー メッセージが表示される場合は、既に何かが出力されているためです。例えば:
echo "hello world;";
header("Location: errorpage.php");
また:
<?php // notice the space before <?php
header("Location: errorpage.php");
?>