【问题标题】:Data insert into mysql db table using PDO - Doesn't Insert Data使用 PDO 将数据插入 mysql 数据库表 - 不插入数据
【发布时间】:2012-11-24 18:29:14
【问题描述】:

我'连接到数据库'。表中没有数据,并且 $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();
    }
?>

【问题讨论】:

  • 在打电话给new PDO之前回显"mysql:host=$host;database=$database"

标签: php mysql insert pdo


【解决方案1】:

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

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

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

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

【讨论】:

  • 优秀 - 成功了。我还必须删除电子邮件后的逗号。谢谢!
  • 顺便说一句,由于您似乎是 StackOverflow 的新手,请记住接受答案(在分数下方的复选标记),以便我们俩都获得奖励积分 ;-)。
猜你喜欢
  • 2014-04-17
  • 2018-08-01
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 2017-07-03
  • 2012-03-28
  • 1970-01-01
相关资源
最近更新 更多