1

正常に接続されました 致命的なエラー: 7 行目の非オブジェクトでメンバー関数 prepare() を呼び出します。なぜこのエラーが発生するのですか? これがフォーラムの始まりです。「if ($query = $db->prepare($sql))」で準備します。

<?php
session_start();
$db = mysql_connect("localhost","root","","my_db") or die ("Could not connect to         database.");
echo 'Connected Successfully';

$sql = "SELECT forum_id, forum_name FROM forum_tbl";
if ($query = $db->prepare($sql)){
    $query->bind_result($f_id, $f_name);
    $query->execute();
    $query->store_result();
}else{
    echo $db->error;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
<title>Forum</title>
<meta/>
<style type="text/css">
</style>
</head>

<body>
<div class="container">
<div class="content">
    <table align="center" width="80%">
        <?php
        if($query->num_rows !==0):
        while($row = $query->fetch()):?>
        <tr>
        <td><a href="forum.php?id=<?php echo $f_id?>"><?php echo $f_name;?>    </a></td>
        </tr>
        <?php endwhile; endif;?>    
    </table>
</div>
</div>
</body>
</html>
4

2 に答える 2

4

mysql_connectPDOと混同しています。PDO を使用すると、クエリに使用するオブジェクトを取得できますmysql_connect

したがって、オブジェクトではない何かに対してメソッドを呼び出しています。そのような定数があると仮定すると(そうでない場合は、単に正しい値に置き換えます)、コードを次のように変更します

$db = new PDO(DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
于 2012-12-30T23:06:30.523 に答える
4

変化する:

$db = mysql_connect("localhost","root","","my_db") or die ("Could not connect to database.");

try {
    $db = new PDO(mysql:dbname=my_db;host=127.0.0.1, "root","");
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
    exit();
}
于 2012-12-30T23:07:55.370 に答える