【问题标题】:Inserting values into database using PDO-mysql使用 PDO-mysql 将值插入数据库
【发布时间】:2014-02-26 07:07:20
【问题描述】:

当我使用 PDO-mysql 对数据库执行我的 mysql 查询时,它不会插入值。我正在关注文档,但似乎仍然没有任何进展。

所以我的 .sql 文件是这样的

CREATE DATABASE IF NOT EXISTS `qr_db`; 

CREATE TABLE IF NOT EXISTS `qr_db`.`clients` (
    `id` int(11) NOT NULL auto_increment,
    `first_name` varchar(100) NOT NULL,
    `last_name` varchar(100) NOT NULL,
    `key` char(128) NOT NULL,
    PRIMARY KEY(`id`),
    UNIQUE KEY `key` (`key`)
) ENGINE=MyISAM;

grant select, insert, update, delete 
on qr_db.* 
to qr_db@localhost identified by 'password';

这是我遇到问题的代码

if(!isset($_GET['key'])) {

$mysql = db_connect();  // <--- this is ok i already checked this

$query = 'INSERT INTO `clients` (`first_name`, `last_name`, `hash`) VALUES (?, ?, ?)';

$stmt = $mysql->prepare($query);

$stmt->bindParam(1, $f_name, PDO::PARAM_STR);
$stmt->bindParam(2, $l_name, PDO::PARAM_STR);
$stmt->bindParam(3, $dubhash, PDO::PARAM_STR);
$stmt->execute();

} 

【问题讨论】:

标签: php database pdo mysqli


【解决方案1】:

首先检查您的连接是否与数据库连接,然后使用以下代码 插入记录

将列名中的哈希更改为键。这是造成问题,因为表没有任何名称为 hash 的列

 $sql = "INSERT INTO clients (first_name, last_name, key) VALUES (:fname, :lname, :hashval)";

$q = $mysql->prepare($sql);
$q->execute(array(':fname'=>$f_name,
                  ':lname'=>$lname,
                  ':hashval'=>$hash ));

祝你好运……

【讨论】:

  • 首先必须是评论,其次才是 OP 现在拥有的内容
  • 您是否在查询中将“hash”更改为“key”?插入客户(名字、姓氏、密钥)?
  • 好的,我做到了,但仍然无法正常工作。这很奇怪,我已经这样做了数百次,但只是没有使用 PDO
  • 我认为您的数据库连接有问题...您检查了吗?
  • 是的,数据库连接没问题
猜你喜欢
  • 2014-04-17
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 2015-10-24
  • 2017-07-03
  • 2017-09-19
  • 2014-08-28
相关资源
最近更新 更多