摘要: [toc] chca是一个使用golang开发的静态博客生成器,简单、方便、快捷,抛弃每次都需要使用命令编译文件,采用文件监听方式编译,作者只需把markdown文件放到配置中的markdown文件夹下就能自动生成html了。 chca源码地址: "https://github.com/num5/c 阅读全文
posted @ 2017-08-05 11:35 毫不淡定的猪 阅读(921) 评论(2) 推荐(1) 编辑

大家连接数据库大多数应该用的都是mysql_connect()这样的吧,当然,肯定也有不是的啊,在php5以后的版本中增加了mysqli_connect(),这样的比mysql_connect()高效,其实这其中还带有一个php自己写的内置类  $conn=new mysqli(),我记得是这样的,大家可以试试看,在这里我要说的不是这些连接方法,而是另外一种即PDO来连接数据库
具体方法我整理出来,和大家分享一下,共同进步!

/**
*需要加载pdo模块,找到
 ;extension=php_pdo.dll
 ;extension=php_pdo_firebird.dll
 ;extension=php_pdo_mssql.dll
 ;extension=php_pdo_mysql.dll
 ;extension=php_pdo_oci.dll
 ;extension=php_pdo_oci8.dll
 ;extension=php_pdo_odbc.dll
 ;extension=php_pdo_pgsql.dll
 ;extension=php_pdo_sqlite.dll
把前面的;都去掉,相信这个大家都会的就不多说
*/

eg1、Connecting to mysql

1 <?php
2 $dbh = newPDO('mysql:host=localhost;dbname=test',  $user, $pass);
3 ?>

eg2、Handling connection errors

 1 <?php
 2 try {
 3 $dbh = new PDO('mysql:host=localhost;dbname=test',  $user, $pass);
 4 foreach ($dbh->query('SELECT * from FOO') as $row) {
 5 print_r($row);
 6 }
 7 $dbh = null;
 8 } catch (PDOException $e) {
 9 print  "Error!: " . $e->getMessage() . "<br/>";
10 die();
11 }
12 ?>  

eg3、Closing a connection

1 <?php
2 $dbh = newPDO('mysql:host=localhost;dbname=test',  $user, $pass);
3 // use the connection here
4 
5 // and now we're done; close  it
6 $dbh = null;
7 ?>

eg4、Persistent connections 永久连接

1 <?php
2 $dbh = new PDO('mysql:host=localhost;dbname=test',  $user, $pass, array(PDO_ATTR_PERSISTENT =>  true
3 ));  

eg5、Executing a batch in a transaction  在事务中的批处理执行

 1 <?php
 2 try {
 3 $dbh = new PDO ('odbc:SAMPLE', 'db2inst1', 'ibmdb2', 
 4 array(PDO_ATTR_PERSISTENT =>  true));
 5 echo  "Connected\n";
 6 $dbh->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
 7 
 8 $dbh->beginTransaction();
 9 $dbh->exec("insert into staff (id, first, last)  values (23, 'Joe', 'Bloggs')");
10 $dbh->exec("insert  into salarychange (id, amount, changedate) 
11 values (23, 50000,  NOW())");
12 $dbh->commit();
13 
14 } catch (Exception $e) {
15 $dbh->rollBack();
16 echo "Failed: " . $e->getMessage();
17 }
18 ?> 

eg6、Repeated inserts using prepared statements -1 重复使用准备好的语句插入(即绑定参数)

 1 <?php
 2 $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value)  VALUES (:name, :value)");
 3 $stmt->bindParam(':name', $name);
 4 $stmt->bindParam(':value', $value);
 5 
 6 // insert one row
 7 $name = 'one';
 8 $value = 1;
 9 $stmt->execute();
10 
11 // insert another row with  different values
12 $name = 'two';
13 $value = 2;
14 $stmt->execute();
15 ?> 

eg7、Repeated inserts using prepared statements -2

 1 <?php
 2 $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value)  VALUES (?, ?)");
 3 $stmt->bindParam(1, $name);
 4 $stmt->bindParam(2, $value);
 5 
 6 // insert one row
 7 $name = 'one';
 8 $value = 1;
 9 $stmt->execute();
10 
11 // insert another row with  different values
12 $name = 'two';
13 $value = 2;
14 $stmt->execute();
15 ?> 

eg8、 Fetching data using prepared statements 提取数据使用准备好的语句
(
这个例子对获取的形式提供一个键值的数据。用户输入是自动进行加引号,所以不存在一个SQL注入攻击的危险)

1 <?php
2 $stmt = $dbh->prepare("SELECT * FROM REGISTRY where name =  ?");
3 if ($stmt->execute(array($_GET['name']))) {
4 while ($row = $stmt->fetch()) {
5 print_r($row);
6 }
7 }
8 ?> 

最后我提供一点自己写的程序,不熟悉的朋友相信有点用的呀,会的就可以不看啦

<?php
//插入数据
try {
   $dbh = new PDO('mysql:host=localhost;dbname=gbook',"root","123456");

/*
*第一种方法:
*/   
$stmt = $dbh->prepare("INSERT INTO guestbook(title, name, contents)  VALUES (:title,:name,:contents)");
   $title = 'Hello';
   $name = "CWL";
   $contents="Hello World!";
   $stmt->execute(array(':title' => $title, ':name' => $name,'contents'=>$contents));

/*
此为第二种方法,也可,与上种方法相比,省去对 $stmt->bindParam() 的调用。
   $stmt = $dbh->prepare("INSERT INTO guestbook(title, name, contents)  VALUES (:title,:name,:contents)");
   $title = 'Hello';
   $name = "CWL";
   $contents="Hello World!";
   $stmt->bindParam(':title', $title);
   $stmt->bindParam(':name', $name);
   $stmt->bindParam(':contents', $contents);
   $stmt->execute();
*/
} catch (PDOException $e) {
    print  "Error!: " . $e->getMessage() . "<br/>";
    die();
}

//查询数据
/*
try {
    foreach ($dbh->query('SELECT * from guestbook') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print  "Error!: " . $e->getMessage() . "<br/>";
    die();
}
*/
?>

本文来自:http://hi.baidu.com/caowlong/blog/item/ea650c464d942441510ffeb7.html

 

 

PHP 交流群:120372298    大家一起学习

posted @ 2013-03-07 21:00 毫不淡定的猪 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 围绕着的一直是MVC。为什么每个人都说着MVC,都把MVC神化到如此强大的地步,真的是不明白,MVC到底有什么好处的。在群里跟别人争论MVC,没一个人赞同我的观点。我的观点是MVC臃肿、不灵活。然后这个群中其他人别人的观点是MVC很灵活、很好用。但是他们说MVC并不是单单指cakephp、thinkphp、zf。还有的说discuz 、dedecms、wordpress也用到了mvc。一直到现在为止,还是没有用mvc来弄php,每次尝试都是感觉又繁杂又乱。一直想不到mvc有什么好处,我自己的代码可以执行完所需功能,不需额外的多余的代码,如果用了mvc,根本不清楚那一大堆文件夹里面的代码如何执行 阅读全文
posted @ 2013-03-06 04:58 毫不淡定的猪 阅读(934) 评论(0) 推荐(0) 编辑
摘要: dedecms里面有两个标签还是比较灵活的,一个是{dede:PHP} {/dede:PHP}另外一个是{dede:sql}标签,{dede:PHP}标签注释要用来在模板中写PHP代码的,{dede:sql}主要是用来调用sql用的,下面就来介绍下这两个标签到底该如何使用。该文章是转自百度空间的一篇文章。{dede:sql}标签的用法sql标签可以称得上是个万能标签了,查询数据库将其输出,这里介绍一些关于这个标签的用法:1.用来输出统计内容,这个是不错的,举个例子,我们来统计下总共发了多少的文章,思路就是输出dede_addonarticle这个文章附加表内容总数就可以了。1 {dede:sq 阅读全文
posted @ 2013-03-06 04:50 毫不淡定的猪 阅读(395) 评论(0) 推荐(0) 编辑
摘要: MVC是Model(模型)-View(视 图)-Controlller(控制器)的简称。MVC是一种软件开发架构,在近几年的Web应用开发中非常流行。简单的说,这三件事情还是很简 单。Model是负责如何与数据库交互,它是后端的PHP OO类库,其它语言比如Ruby on Rails或C++、Java亦同;View基本上是前端的用户界面。Controller负责处理操作商业逻辑,在前两者之间协作。这些看似容 易解释,但有时这个概念也有点抽象,比较难以把握。坦率地说,我这么多年的Web开发中,我也没有真正研究MVC的细节,虽然我的书中也有介绍。 直到最近,一些读者开始向我请教这方面的问题。在本篇 阅读全文
posted @ 2013-03-06 04:41 毫不淡定的猪 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 今天研究了下PHP MVC结构,所以决定自己写个简单的MVC,以待以后有空再丰富。至于什么MVC结构,其实就是三个Model,Contraller,View单词的简称,,Model,主要任务就是把数据库或者其他文件系统的数据按 照我们需要的方式读取出来。View,主要负责页面的,把数据以html的形式显示给用户。Controller,主要负责业务逻辑,根据用户的 Request进行请求的分配,比如说显示登陆界面,就需要调用一个控制器userController的方法loginAction来显示。下面我们用PHP来创建一个简单的MVC结构系统。首先创建单点入口,即bootstrap文件index 阅读全文
posted @ 2013-03-06 04:37 毫不淡定的猪 阅读(2315) 评论(1) 推荐(0) 编辑
摘要: 标题上我把这个留言板叫最简单的,其实应该叫最简陋的,因为把全部注意力集中在MVC模式设计和实现上,所以UI方面几乎没有一点修饰。 阅读全文
posted @ 2013-03-06 04:28 毫不淡定的猪 阅读(6541) 评论(2) 推荐(0) 编辑
点击右上角即可分享
微信分享提示