使用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无法插入数据怎么办的更多相关文章
- 使用 MySQLi 和 PDO 向 MySQL 插入数据
PHP MySQL 插入数据 使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据. 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 ...
- 使用PDO连接数据库 查询和插入乱码的解决方法
问题:PDO连接数据库后,查询和插入中文到数据库,出现乱码,如图: 解决方法: 法1: try{ $opts_values = array(PDO::MYSQL_ATTR_INIT_COMMAND=& ...
- php的mysql\mysqli\PDO(三)PDO
原文链接:http://www.orlion.ga/1153/ PDO是一种数据库抽象层,不止可以访问mysql还可以访问其他数据库. 一.__construct() PDO::__construct ...
- PHP MySQL 插入数据
PHP MySQL 插入数据 使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据. 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 ...
- ThinkPHP 3.2.3+ORACLE插入数据BUG修复及支持获取自增Id的上次记录
TP+ORACLE插入数据BUG修复以及获取自增Id支持getLastInsID方法 这些天在做Api接口时候,发现用TP操作Oracle数据库,发现查询修改删除都能执行, 但一旦执行插入操作老是报错 ...
- 吴裕雄--天生自然 PHP开发学习:MySQL 插入数据
<?php $servername = "localhost"; $username = "root"; $password = "admin& ...
- 数据库插入数据返回当前主键ID值方法
当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库: 2. ...
- C#批量插入数据到Sqlserver中的四种方式
我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...
- mysql 插入数据失败防止自增长主键增长的方法
mysql设置了自增长主键ID,插入失败的那个自增长ID也加一的,比如失败5个,下一个成功的不是在原来最后成功数据加1,而是直接变成加6了,失败次数一次就自动增长1了,能不能让失败的不增长的? 或者说 ...
随机推荐
- 《Linux命令行大全》 笔记记录
1.Shell是什么 2.(文件目录)导航 3.Linux系统 4.操作文件和目录 5.命令的使用 6.重定向 7.透过shell看世界 扩展 引用 8.高级键盘技巧 9.权限 10.进程 11.环境 ...
- 【转载】mysql行列转换方法总结
[转载]mysql行列转换方法总结 [MySQL] 行列转换变化各种方法实现总结(行变列报表统计.列变行数据记录统计等) Mysql 列转行统计查询 .行转列统计查询 在某些数据库中有交叉表,但在My ...
- python基础之编码
ascci:字母.数字.特色字符,1个字节-8位Unicode:两个字节-16位,升级版四个字节-32位uft-8:最少一个字节-8位,英文字母-1个字节-8位,欧洲-2个字节-16位,中文-3个字节 ...
- ASP.NET MVC Model 验证总结
http://www.wyjexplorer.cn/Post/2012/8/3/model-validation-in-aspnet-mvc3 ASP.NET MVC3中的Model是自验证的,这是通 ...
- win10安装tensorflow (cpu版)
前提: 下载anaconda,然后创建一个python虚拟环境: 命令: conda create -n tf_cpu python=3.6 # (tf_cpu 是这个虚拟环境的名字) ...
- 海量数据和高并发下的 Redis 业务优化实践
本文内容是我在 6 月 23 日参加的深圳 GIAC 技术大会上演讲的文字稿. 观众朋友们,我是来自掌阅的工程师钱文品,掘金小册<Redis 深度历险>的作者.今天我带来的是分享主题是:R ...
- 如何获取字符串中某个具体的数值--通过json.load转化成字典形式获取
r=requests.get('http://httpbin.org/get').text print(r) # print(type(r)) # 如果要获取User-Agent的详细数值,需要做JS ...
- 必备idea 插件plugins 提高编码效率
最近发现了几个非常好用 提高编码效率 的idea 插件 跟大家分享一下 因为idea自带的插件下载可能连接不上服务器而导致插件下载失败,所以这里推荐使用引入外部插件的方式 插件包也给你们准备好了( ...
- Maven下载安装测试
一.Maven下载 在Maven官网下载压缩包 二.安装 解压后目录如下 bin目录包含mvn的运行脚本 boot目录包含一个类加载器的框架,加载自己的类库 conf是配置文件目录 lib目录包含一些 ...
- Kinect开发-Hello Kinect
置好开发环境后,首先测试下是否真的完成,也就是能够正常进行开发.此时,当然就得祭出Hello World大法! 1.首先创建一个WPF Application工程,之后添加对Microsoft.Kin ...