使用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了,能不能让失败的不增长的? 或者说 ...
随机推荐
- SQLServer2008R2复制发布订阅(含局域网跨网段)调试总结
需要注意的问题点: 一.发布服务器A和订阅服务器B都在同一个网段的局域网内 1.两台服务器的SQLServer版本必须一致. 2.两服务器之间访问没难度,直接就可以搜索到. 3.注意请求订阅和推送订阅 ...
- elk logstash Managing Multiline Events
1.Java程序的日志特征,logstash 正为此准备好了 codec/multiline 插件! 有时候应用程序会抛异常,就存在着如何合并多行信息的问题,我这里做的配置就是如果当前行是以‘空格’, ...
- selenium—显示等待中期望的场景语句
① alert_is_present() 判断页面是否出现alert框 wait = WebDriverWait(driver,10) alert = wait.until(EC.alert_is_p ...
- MVC与MTV模型及Django请求的生命周期
MVC模型 MVC:Model View Controller M: 模型.是应用程序中用于处理应用程序数据逻辑的部分 V:视图.是应用程序汇总处理数据显示的部分 C:控制器.是应用程序中处理用户交互 ...
- __metaclass__方法
metaclass这个属性叫做元类,它是用来表示这个类是由谁来帮他实例化创建的,说白了,就是相当于自己定制一个类. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- 单页面应用 之 项目中集成插件vue-router
\es6\my-complex-project>npm install vue-router -S (S 表示这个包下载到,当前的项目中) 导入写好的 router 这里尽量使用 @ ...
- (四)Java秒杀项目之JMeter压测
一.JMeter入门压测 1.打开JMeter工具,选中测试计划->右键添加->线程(用户)->线程组,页面中的线程数就是并发数,页面中的Ramp-Up时间(秒)表示通过多长时间启动 ...
- 从入门到自闭之Python while如何使用
while 循环 while 条件: 循环体 终止循环的两种办法: 改变条件 break break和continue的用法: break 用法:打破当前循环,(终止当前循环),所处位置在循环 ...
- @Value中冒号的作用
先说明冒号的作用 :可以设置默认值 @Value中可以使用 @Value("${hello:defaultValue}") private String hello; 若找不到属性 ...
- Thinkphp5.0上传图片与运行python脚本
这里只体现了php可以通过批处理文件调用python脚本的效果 控制器代码 访问路径为127.0.0.1/index/index/upload. index模块,index控制器,upload方法. ...