3

PHP に関する本を読んでいて、この例に問題があります。

<?php
function dbConnect() {
    $host = 'localhost';
    $db = 'learnphp';
    $user = 'phplearner';
    $pwd = 'wxyz1234';
    return new mysqli($host, $user, $pwd, $db) or die("Can't open database");
}
$conn = dbConnect();
$sql = 'SELECT * FROM images';
$result = $conn->query($sql);
$numRows = $result->num_rows;
?>
<p>A total of <?php echo $numRows; ?> records were found.</p>

私のローカル サーバー (XAMPP 1.8.1; PHP 5.4.7; mysqlnd 5.0.10 - 20111026; MySQL 5.5.27) では実行されません。次のエラー メッセージが表示されます。

致命的なエラー: 11行目のD:\xampp\htdocs\learnphp\mysql\mysqli.phpの非オブジェクトに対するメンバー関数 query() の呼び出し

ただし、この行を変更すると:

    return new mysqli($host, $user, $pwd, $db) or die("Can't open database");

に:

    $mysqliobj = new mysqli($host, $user, $pwd, $db) or die("Can't open database");
    return $mysqliobj;

それは正常に動作します:

合計 8 件のレコードが見つかりました。

return new mysqli(...)例のように使えないのはなぜですか? これは PHP 5.4+ の新しいコーディング要件ですか?

4

2 に答える 2

0

これを変える...

return new mysqli($host, $user, $pwd, $db) or die("Can't open database");

これに..

return mysqli_connect($host, $user, $pwd, $db) or die("Can't open database");
于 2013-08-07T07:49:35.903 に答える