在PHP和mySQL中使用带命名占位符的准备语句出错


Error with a prepared statement with named placeholders in PHP with mySQL

我在我的网页上得到这些错误与这个代码

Notice: Undefined variable: dbh in /home/danu2_cj3/public_html/lists.php on line 14
Fatal error: Call to a member function prepare() on a non-object in /home/danu2_cj3/public_html/lists.php on line 14

这是我使用的php代码,第14行是这段代码的第4行

<?php
/* Execute a prepared statement by binding PHP variables */
$member = $_SESSION['SESS_MEMBER_ID'];
$sth = $dbh->prepare('SELECT name
    FROM lists
    WHERE member_id = :member_id ');
$sth->bindValue(':member_id', $member, PDO::PARAM_INT);
$sth->execute();
?>

我想展示的是一组行数组这些行中的一个字段应该匹配登录到会话的人的member_id

这里是整个页面的代码(top.php和bottom.php只是布局页面)

<?php include ('top.php')?>
<h1>My Profile </h1>
<a href="lists.php">My Lists</a> | <a href="logout.php">Logout</a></br>
</br>
Please select list to view/delete
<?php include ("connect.php")?>
<?php
/* Execute a prepared statement by binding PHP variables */
$member = $_SESSION['SESS_MEMBER_ID'];
$sth = $dbh->prepare('SELECT name
    FROM lists
    WHERE member_id = :member_id ');
$sth->bindValue(':member_id', $member, PDO::PARAM_INT);
$sth->execute();
?>
<?php include ('bottom.php')?>

这是我的connect.php文件

<?php
$username = "mydb";
$password = "mydb";
$hostname = "host"; 
//connection to the database
$dbh = mysql_connect($hostname, $username, $password) 
 or die("Unable to connect to database");
//select a database to work with
$selected = mysql_select_db("mydb",$dbh) 
  or die("Could not select database");
?>

您可能应该将connection添加到数据库或检查connect.php中是否正确设置

try 
{
    $dbh = new PDO($dsn, $user, $password);
} 
catch (PDOException $e) 
{
    echo 'Connection failed: ' . $e->getMessage();
}
这里的

文档