简体   繁体   English

使用MySQL的PHP​​中带有命名占位符的预准备语句出错

[英]Error with a prepared statement with named placeholders in PHP with mySQL

I am getting these errors on my webpage with this code 使用此代码,我的网页上出现了这些错误

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

This is the php code i am using and line 14 is the 4th line in this code 这是我正在使用的php代码,第14行是此代码中的第四行

<?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();
?>

I am trying to show an array of a bunch of rows where one of the fields in those rows is supposed to match the member_id for the person logged into the session 我正在尝试显示一堆行的数组,其中这些行中的一个字段应该与登录会话的人的member_id匹配

here is the whole code for the page (top.php and bottom.php are just layout pages) 这是页面的完整代码(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')?>

Here is my connect.php file 这是我的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");
?>

You should probably add connection to database or check if it is correctly set in connect.php 您可能应该将connection添加到数据库或检查connect.php connection设置是否正确

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

DOCUMENTATION HERE 这里的文件

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM