php mysql增修删_PHP mysql PDO增、删、查、改

1 建立连接<?php

$dbh=newPDO('mysql:host=localhost;port=3306; dbname=test',$user,$pass,array(

PDO::ATTR_PERSISTENT=>true

));

?>持久性链接PDO::ATTR_PERSISTENT=>true2. 捕捉错误<?php

try{

$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);

$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$dbh->exec("SET CHARACTER SET utf8");

$dbh=null; //断开连接

}catch(PDOException$e){

print"Error!:".$e->getMessage()."
";

die();

}

?>3. 事务的 (数据表改成 InnoDB 类型进行操作)<?php

try{

$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();//开启事务

$dbh->exec("insertintostaff(id,first,last)values(23,'Joe','Bloggs')");

$dbh->exec("insertintosalarychange(id,amount,changedate)

values(23,50000,NOW())");

$dbh->commit();//提交事务

}catch(Exception$e){

$dbh->rollBack();//错误回滚

echo"Failed:".$e->getMessage();

}

?>

4. 错误处理

a. 静默模式(默认模式)

$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_SILENT); //不显示错误

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);//显示警告错误,并继续执行

$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//产生致命错误,PDOException//PDO操作数据库的增删查改 基本语法

$dbh = new PDO('mysql:host=localhost;dbname=access_control', 'root', '');

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->exec('set names utf8');

/*添加*/

//$sql = "INSERT INTO `user` SET `login`=:login AND `password`=:password";

$sql = "INSERT INTO `user` (`login` ,`password`)VALUES (:login, :password)";  $stmt = $dbh->prepare($sql);  $stmt->execute(array(':login'=>'kevin2',':password'=>''));

echo $dbh->lastinsertid();

/*修改*/

$sql = "UPDATE `user` SET `password`=:password WHERE `user_id`=:userId";

$stmt = $dbh->prepare($sql);

$stmt->execute(array(':userId'=>'7', ':password'=>'4607e782c4d86fd5364d7e4508bb10d9'));

echo $stmt->rowCount();

/*删除*/

$sql = "DELETE FROM `user` WHERE `login` LIKE 'kevin_'"; //kevin%

$stmt = $dbh->prepare($sql);

$stmt->execute();

echo $stmt->rowCount();

/*查询*/

$login = 'kevin%';

$sql = "SELECT * FROM `user` WHERE `login` LIKE :login";

$stmt = $dbh->prepare($sql);

$stmt->execute(array(':login'=>$login));

while($row = $stmt->fetch(PDO::FETCH_ASSOC)){

print_r($row);

}

print_r( $stmt->fetchAll(PDO::FETCH_ASSOC));

?>1. 使用 query()<?php

$dbh->query($sql); 当$sql 中变量可以用$dbh->quote($params); //转义字符串的数据

$sql = 'Select * from city where CountryCode ='.$dbh->quote($country);

foreach ($dbh->query($sql) as $row)   {

print $row['Name'] . "/t";

print $row['CountryCode'] . "/t";

print $row['Population'] . "/n";

}

?>2. 使用 prepare, bindParam和 execute [建议用,同时可以用添加、修改、删除]

$dbh->prepare($sql); 产生了个PDOStatement对象

PDOStatement->bindParam()

PDOStatement->execute();//可以在这里放绑定的相应变量

?>DO常用方法:PDO::query()主要用于有记录结果返回的操作(PDOStatement),特别是select操作。

PDO::exec()主要是针对没有结果集合返回的操作。如insert,update等操作。返回影响行数。

PDO::lastInsertId()返回上次插入操作最后一条ID,

但要注意:如果用insert into tb(col1,col2) values(v1,v2),(v11,v22)..的方式一次插入多条记录,

lastinsertid()返回的只是第一条(v1,v2)插入时的ID,而不是最后一条记录插入的记录ID。

PDOStatement::fetch()是用来获取一条记录。配合while来遍历。

PDOStatement::fetchAll()是获取所有记录集到一个中。

PDOStatement::fetchcolumn([int column_indexnum])用于直接访问列,

参数column_indexnum是该列在行中的从0开始索引值,但是,这个方法一次只能取得同一行的一列,

只要执行一次,就跳到下一行。因此,用于直接访问某一列时较好用,但要遍历多列就用不上。

PDOStatement::rowcount()适用于当用query("select ...")方法时,获取记录的条数。

也可以用于预处理中。$stmt->rowcount();PDOStatement::columncount()

适用于当用query("select ...")方法时,获取记录的列数。

注解:

1、选fetch还是fetchall?小记录集时,用fetchall效率高,减少从数据库检索次数,

但对于大结果集,用fetchall则给系统带来很大负担。数据库要向WEB前端传输量太大反而效率低。

2、fetch()或fetchall()有几个参数:mixed pdostatement::fetch([int fetch_style [,int cursor_orientation [,int cursor_offset]]])array pdostatement::fetchAll(int fetch_style)

fetch_style参数:■$row=$rs->fetchAll(PDO::FETCH_BOTH);

FETCH_BOTH是默认的,可省,返回关联和索引。

■$row=$rs->fetchAll(PDO::FETCH_ASSOC);

FETCH_ASSOC参数决定返回的只有关联数组。

■$row=$rs->fetchAll(PDO::FETCH_NUM);

返回索引数组■$row=$rs->fetchAll(PDO::FETCH_OBJ);

如果fetch()则返回对象,如果是fetchall(),返回由对象组成的二维数组

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark SQL在100TB上的自适应执行实践

作者&#xff1a;汪愈舟 俞育才 郭晨钊 程浩&#xff08;英特尔&#xff09;&#xff0c;李元健&#xff08;百度&#xff09;责编&#xff1a;钱曙光&#xff08;qianshgcsdn.net&#xff09;Spark SQL是Apache Spark最广泛使用的一个组件&#xff0c;它提供了非常友好的…

中国大学慕课python答案第七章_中国大学慕课用Python玩转数据章节测试答案

[名词解释] 离子泵ionpump[名词解释] 主要吸收[养分] active uptake [ nutrient][名词解释] 质流[养分] mass flow [ nutrition][名词解释] 离子载体 ionophor[名词解释] 相对蒸腾[名词解释] 肥料最大效率期 maximum efficiency stage of fertilization[名词解释] 短距离运输 s…

分包组包 北斗通信_蓝牙mesh底层传输层(分包和组包)

当传输大于15字节的上层传输层PDU时&#xff0c;底层传输层就需要对上层传输层PDU进行分包并重新组包为了减少底层传输层包的数量&#xff0c;这里使用块应答机制。问题&#xff1a;怎么通过块应答机制减少底层传输层包的数量&#xff1f;上层传输层需要分成两个底层传输层PDU的…

别人在忙挖矿,京东架构师却悄悄用区块链搞了件大事

作者介绍&#xff1a; 赵铭&#xff0c;京东商城区块链研发工程师&#xff0c; 主要从事区块链底层研究设计工作&#xff0c;主攻方向为分布式账本结构&#xff1b; 孙海波&#xff0c;目前担任京东Y事业部供应链研发负责人&#xff0c;负责的业务包括订单履约、库存优化、采购…

用sklearn mysql_Sklearn之Linear Regression

import matplotlib.pyplot as pltimport numpy as npfrom sklearn import datasets, linear_modelfrom sklearn.metrics import mean_squared_error, r2_score# 加载糖尿病数据集diabetes datasets.load_diabetes()# 只使用一个特征diabetes_X diabetes.data[:, np.newaxis, …

mysql从服务器配置_mysql主从服务器配置基础教程

环境&#xff1a;A、B的MySQL数据库版本同为5.0.45-community-ntA&#xff1a;操作系统&#xff1a;Windows xpIP地址&#xff1a;192.168.18.110B&#xff1a;操作系统&#xff1a;Windows xp的IP地址&#xff1a;192.168.18.107配置过程&#xff1a;1、在A的数据库中建立一个…

2017年30个惊艳的Python开源项目

【摘要】本文来自Mybridge&#xff0c;介绍了过去一年里30个惊艳的Python开源项目。点击阅读原文每一个都可以在GitHub上看到更为详细的内容。以下是译文。在过去的一年里&#xff0c;Mybridge AI 比较了近15000个开源Python项目&#xff0c;选择了前30名&#xff08;概率只有0…

mycloud php5 mysql_mycloud 刷debian乐趣之-owncloud 私有云+芒果云的安装

既然刷了debian了&#xff0c;那么就可以安装很多软件了。这篇文章&#xff0c;我打算讲讲大众化的最初始的配置方案。具体后续优化&#xff0c;例如memcached,https等&#xff0c;可以参考官方文档。第一步、安装apache,#当然&#xff0c;你如果喜欢nginx&#xff0c;也可以的…

java 错误 代码_Java错误代码及异常处理

现在有个项目&#xff0c;遇到错误代码和异常处理方面的问题&#xff0c;请教各位高手。背景&#xff1a;项目对外提供服务&#xff0c;这些服务是对很多外部系统提供服务的封装&#xff0c;每个外部系统有自己的错误代码&#xff0c;没有统一的规范。有些外部系统自己规范都不…

关于区块链,程序员需要了解什么

作者 | 曹严明如果说比特币是对传统货币的一种颠覆&#xff0c;那么比特币的基础技术——区块链则是对传统编程范式的一种颠覆。区块链技术被看作是一次Paradigm Shift。也许很多人对 “颠覆”这种说法不以为然&#xff0c;因为现在这个词已经被用滥了&#xff08;如今哪个好一…

java两个矩阵相乘_java计算两个n阶矩阵相乘

自己是个新手&#xff0c;研究java数据结构&#xff0c;看到两个n阶矩阵相乘的题目&#xff0c;自己就试着写了一个简单的demo&#xff0c;哪里有不好的地方&#xff0c;也希望大家多提提意见&#xff0c;直接上代码了&#xff1a;package com.shujujiegou01;public class JuZh…

java annotation list_java-注解annotation

package cd.itcast.day2;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Arrays;import java.util.Date;import java.util.List;/*** 注解** 注解的使用构成&#xff1a; 1&#xff0c;注解的申明 2&#xff0c;在类型(代码)上面打上注解 3&…

java 关联表做修改_java-图关联列表实现

我知道我也许正在从死里复生一个老问题,但是我觉得应该发表评论.您可以创建关联列表图形结构,也可以针对图进行调整.考虑LinkedList< Vertex>.对象和LinkedList< Edge>.宾语.这将使您可以遍历所有边缘和所有顶点,但不包含有关所有对象如何连接的信息.假设我们添加了…

JavaApp自动化测试系列[v1.0.0][几种常见APP类型测试代码实例附源码]

通常APP分为&#xff1a;原生APP、WebApp、混合型APP&#xff0c;其自动化测试代码稍有不同 Java结合TestNG单元测试框架&#xff0c;实现移动端IOS_WebApp测试【源码】 /** FileName Test_iOS_WebApp:* author davieyang* create 2018-11-22 14:20*/ package testscript; imp…

混合云异军突起 英特尔的全“芯”体验为企业保驾护航

近几年&#xff0c;混合云在IT界异军突起&#xff0c;各大厂商纷纷布局混合云市场&#xff0c;企业更愿意将数据存放在私有云中&#xff0c;但是同时又希望可以获得公有云的计算资源&#xff0c;在这种情况下混合云被越来越多的采用&#xff0c;它将公有云和私有云进行混合和匹…

python 常用模块函数_python函数和常用模块(三),Day5

递归反射os模块sys模块hashlib加密模块正则表达式反射python中的反射功能是由以下四个内置函数提供&#xff1a;hasattr、getattr、setattr、delattr&#xff0c;改四个函数分别用于对对象内部执行&#xff1a;检查是否含有某成员、获取成员、设置成员、删除成员。class Foo(ob…

搭建java_搭建JAVA环境

1 jdk的获取jdk的获取路径有很多这种&#xff0c;我把我网盘上存的分享个大家&#xff0c;大家直接下载就可以了。http://pan.baidu.com/s/1pLsJLtp(这是一个公开链接&#xff0c;直接打开下载就可以了)。2 jdk的安装(1)单击刚刚下载的安装文件将会弹出欢迎对话框。(2)点击“下…

java数组下标越界_BUG-并行流与数组下标越界-思考与总结

BUG-并行流与数组下标越界-思考与总结今天线上环境报异常&#xff0c;发现了一个之前没注意过的问题&#xff0c;记录一下。1. 异常信息异常信息如下&#xff1a;Caused by: java.lang.ArrayIndexOutOfBoundsExceptionat java.lang.String.getChars(String.java:826)at java.la…

IDC敲黑板啦:未来企业IT以混合云为主

数字化是企业转型的必由之路数字化技术正在融入企业的血液里。IDC 认为&#xff0c;基于第三平台的 46 技术是企业在数字化转型过程中的关键要素&#xff1a;• 4 是指以云计算、大数据、社交商业与移动技术为代表的第三平台技术。• 6 则是基于第三平台智商的 6 大创新加速器。…

axis2接收json_AXIS2 如何返回JSON数据

按照网上两篇博文操作了http://blog.djakapm.com/2011/12/15/json-web-service-with-java-and-axis2/http://www.marcusschiesser.de/2009/01/building-a-json-web-service-with-java-and-axis2/但是结果一直是返回的XML数据&#xff0c;无法返回json数据。不知道有哪位大侠成功…