-1

これがコードです

require_once 'functions.php';
require_once 'cfg.php';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $db);
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '. $mysqli->connect_error);
}
$query='SELECT * FROM cobra';
$result=$mysqli->prepare($query);
$result->execute();
$result->close();
echo array_values($result);

エラーが発生した後、エラーが発生します。最初はクエリ部分が関数に含まれていましたが、$mysqliの可変スコープであらゆる種類の問題が発生し続けました。

最新のエラーは次のとおりです。致命的なエラー:11行目の... cobra / lib / distro.php内の非オブジェクトに対するメンバー関数execute()の呼び出し

11行目は次のとおりです。

$result->execute();

これを行うためのさまざまな方法について、いくつかの背景知識が必要です。私はできる限りのことを学んでいますが、すぐに締め切りに近づいています。助けてください。

4

2 に答える 2

1

prepareはステートメントハンドルを返しませんが、falseを返します。これは、prepareが期待どおりに実行されなかったことを示します。

あなたはこれを試すことができます:

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $db);
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '. $mysqli->connect_error);
}
$query =' SELECT * FROM cobra';
$stmt = $mysqli->prepare($query);
if (!$stmt)
  die($mysqli->error);

$stmt->execute();

echo array_values($stmt->fetch());

$stmt->close();
于 2012-09-12T18:54:16.583 に答える
0

$resultそれが有効なmysqli_stmtオブジェクトであることを確認する必要があります。

$query='SELECT * FROM cobra';
$result=$mysqli->prepare($query);
if ($result instanceof mysqli_stmt) {
    $result->execute();
} else {
    // determine what went wrong
    echo $mysqli->error;
}
于 2012-09-12T18:55:32.903 に答える