使用PDO将数据插入到mysql db表中 - 不插入数据

时间:2012-11-24 18:29:15

标签: php mysql insert pdo

我'已连接到数据库'。表中没有数据,$ result不会回显任何内容。即使我'已连接到数据库',错误如下:

SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

我已经阅读了相关的帖子,没有运气。

<?php
include("/directory outside of html/db.php");

try {
    $dbh = new PDO("mysql:host=$host;database=$database", $username, $password);
    /*** echo a message saying we have connected ***/
    echo 'Connected to database';
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//try to insert data
$fname = 'BOB';
$lname = 'JONES';
$email = 'me@mymail.com';
$phone = '410-310-3456';
$resident = TRUE;
$age = '25=30';
$zip = '23456';
$result = FALSE;

  $stmt = $dbh->prepare('INSERT INTO volunteers
  (
   lname,
   fname,
   email,
  )

VALUES
  (
    :lname,
    :fname,
    :email,
  )');

 $result = $stmt->execute(array(
    ':lname' => $lname,
    ':fname' => $fname,
    ':email' => $email,
  ));

echo $result;   

//catch any errors from try()
    }
    catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>

1 个答案:

答案 0 :(得分:3)

使用dbname=代替database=,如下所示:

$dbh = new PDO("mysql:host=$host;dbname=$database", $username, $password);

或者,您可以稍后使用USE选择其他数据库,如下所示:

$dbh->query("use newdatabase");