使用pdo,使用pdo无法插入数据怎么办

Posted saintdingspage

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用pdo,使用pdo无法插入数据怎么办相关的知识,希望对你有一定的参考价值。

如果你使用了最新版的XAMPP,那么你几乎不用改变php.ini的设置,就可以使用pdo

but,插了一晚上,程序既不报错也不插入数据,真是气死人,后来发现是实例化pdo对象的时候没有指定字符集。所以一定设定字符集属性,否则极有可能插入数据失败

  • 一个插入多条数据的例子(用到了事务)
<?php
$dbtype = ‘mysql;
$dbname = ‘olddream‘;
$user = "root";
$pwd = "wenwajiao";
$ip=‘127.0.0.1‘;
$fuckingcharset = ‘utf8‘;
$dsn = "$dbtype:host=$ip;dbname=$dbname;charset=$fuckingcharset";
$pdo = new PDO($dsn,$user,$pwd);
$rows = $pdo->prepare("select userid,username from userlist");
$rows->execute();
$pdo->beginTransaction();
$ret = $rows->fetchAll();
//update rbac_user set mypass = ? where userid = ?
for($i=0;$i<count($ret);$i++)
{
    $sql = "insert into rbac_user (userid,username,mypass) values (?,?,?)";
    $statement=$pdo->prepare($sql);
    $statement->bindValue(1,$ret[$i][‘userid‘]);
    $statement->bindValue(2,$ret[$i][‘username‘]);
    $statement->bindValue(3,md5($ret[$i][‘userid‘]));
    $statement->execute();
}
$pdo->commit();
$pdo=null;
  •  插入一条数据
<?php
$dbtype=‘mysql‘;
$db = ‘olddream‘;
$ip=‘127.0.0.1‘;
$user=‘root‘;
$pwd = ‘wenwajiao‘;
$charset = ‘utf8‘;
$dsn = "$dbtype:host=$ip;dbname=$db;charset=$charset";
$pdo=new PDO($dsn,$user,$pwd);
$sql = "insert into rbac_user (userid,username,mypass) values (?,?,?)";
$statement=$pdo->prepare($sql);
$userid = ‘masterzhang‘;
$username = ‘张教练‘;
$pwd = md5(‘masterzhang‘);
$statement->bindValue(1,$userid,PDO::PARAM_STR);
$statement->bindvalue(2,$username,PDO::PARAM_STR);
$statement->bindvalue(3,$pwd,PDO::PARAM_STR);
$statement->execute();
?>

 

以上是关于使用pdo,使用pdo无法插入数据怎么办的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 PDO 插入 MySQL 数据库....没有错误

无法使用PDO SQLSRV将数据插入SQL db

如何使用 PDO 从 php 文件中插入数据?

如果记录已存在,则为 PDO 数组

如何使用准备好的语句将表单数据插入 PDO?

php PDO - 如何获取最后插入的ID?