0

この行で致命的なエラーが発生することがあります

$result = $db->execute($query);

$primary = $result->getRows();

致命的なエラー: 非オブジェクトでのメンバー関数 getRows() の呼び出し

このエラーをキャッチしてインデックス ページにリダイレクトする解決策を探しています。

システムが古いため、何かを書き直すのは複雑です。

4

6 に答える 6

0

$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();
于 2013-05-29T14:36:39.930 に答える
-1

「header already sent」というエラー メッセージが表示される場合は、既に何かが出力されているためです。例えば:

echo "hello world;";
header("Location: errorpage.php");

また:

 <?php // notice the space before <?php 
header("Location: errorpage.php");
?>
于 2013-05-29T14:37:33.353 に答える