PHP连接mysql数据库:

<?php
$server = "localhost";
$user = "root";
$pwd = "123456";
$db = "student";

try{
    $conn = new PDO("mysql:host=$server;dbname=$db", $user, $pwd);
    echo "连接成功";
} catch (PDOException $e){
    echo $e->getMessage();
}

PHP创建mysql数据库:

<?php

$server = "localhost";
$user = "root";
$pwd = "123456";
$db = "student";
try{
    $conn = new PDO("mysql:host=$server;dbname=$db", $user, $pwd);
    // 设置 PDO 错误模式为异常 ,用于抛出异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "create database mydb";
    $conn->exec($sql);

echo "数据库创建成功<br>";
}catch (PDOException $e){
    echo $sql . "<br>" . $e->getMessage();
}
    //关闭连接
    $conn = null;

PHP创建mysql数据表:

<?php

$server = "localhost";
$user = "root";
$pwd = "123456";
$db = "mydb";

try{
    $conn = new PDO("mysql:host=$server;dbname=$db", $user, $pwd);
    $conn -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$sql = "create table myfriend(
        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(30) NOT NULL ,
        email VARCHAR(50),
        sex CHAR(1)
  )";

$conn->exec($sql);
    echo "数据表创建成功";

}catch (PDOException $e){
    echo $sql . "<br>" . $e->getMessage();
}

$conn = null;

PHP插入记录:

<?php

$server = "localhost";
$user = "root";
$pwd = "123456";
$db = "mydb";

try{
    $conn = new PDO("mysql:host=$server;dbname=$db", $user, $pwd);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "insert into myfriend values (1, '吴俊杰', '1132431868@qq.com', '男')";
    $conn->exec($sql);
    echo "数据插入成功";

}catch (PDOException $e){
    echo $sql . "<br>" . $e->getMessage();
}

$conn = null;

PHP插入多条记录:

<?php

$server = "localhost";
$user = "root";
$pwd = "123456";
$db = "mydb";

try{

$conn = new PDO("mysql:host=$server;dbname=$db", $user, $pwd);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //开始事务
    $conn->beginTransaction();
    //sql语句
    $conn->exec("insert into myfriend values (3,'吴俊杰','1132431868@gmail.com','男')");
    $conn->exec("insert into myfriend values (4,'john','1132431868@gmail.com','男')");
    $conn->exec("insert into myfriend values (5,'jack','jack1132431868@gmail.com','男')");
    //提交事务
    $conn->commit();
    echo "多条记录提交成功";

}catch (PDOException $e){
    //如果插入失败则回滚事务
    $conn->rollBack();
    echo $e->getMessage();
}

$conn = null;

MySQL 预处理语句:

预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高。

预处理语句的工作原理如下:

  1. 预处理:创建 SQL 语句模板并发送到数据库。预留的值使用参数 "?" 标记 。例如:

    INSERT INTO MyGuests(firstname, lastname, email) VALUES(?,?,?)

  2. 数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出。

  3. 执行:最后,将应用绑定的值传递给参数("?" 标记),数据库执行语句。应用可以多次执行语句,如果参数的值不一样。

相比于直接执行SQL语句,预处理语句有两个主要优点:

  • 预处理语句大大减少了分析时间,只做了一次查询(虽然语句多次执行)。

  • 绑定参数减少了服务器带宽,你只需要发送查询的参数,而不是整个语句。

  • 预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性。

<?php

$server = "localhost";
$user = "root";
$pwd = "123456";
$db = "mydb";

try{
    $conn = new PDO("mysql:host=$server;dbname=$db", $user, $pwd);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //预处理sql并绑定参数
    $stmt = $conn->prepare("insert into myfriend VALUES (:id, :name, :email, :sex)");
    $stmt->bindParam(':id',$id);
    $stmt->bindParam(':name',$name);
    $stmt->bindParam(':email',$email);
    $stmt->bindParam(':sex',$sex);

//填充数据,可以一次填充多条记录
    $id = 6;
    $name = "ting";
    $email = '113243186@163.com';
    $sex = "女";
    $stmt->execute();

echo "预处理动作完成";
}catch (PDOException $e){
    echo $e->getMessage();
}

$conn = null;

PDO操作mysql数据库(一)的更多相关文章

  1. php类模块引擎PDO操作MySQL数据库简单阐述

    PDO是什么呢? 通俗说就是别人写的一个“数据库操作工具类”,它非常强大,可以应对市面上几乎所有主流数据库, 具体应用时候有这样一个关系: 即,要操作某种数据,就得去“打开”对应的pdo引擎. 在ph ...

  2. PDO操作mysql数据库(二)

    从 MySQL 数据库读取数据 <?php $server = "localhost"; $user = "root"; $pwd = "123 ...

  3. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  4. MySQL原生API、MySQLi面向过程、MySQLi面向对象、PDO操作MySQL

    [转载]http://www.cnblogs.com/52fhy/p/5352304.html 本文将举详细例子向大家展示PHP是如何使用MySQL原生API.MySQLi面向过程.MySQLi面向对 ...

  5. php之PDO连接mysql数据库,增删改查等等操作实例

    我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严就有SQL注入风险,导致网站被攻击. 虽然可以用mysql_real_escape_string ...

  6. php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库

    1.使用php的MySQL扩展库操作MySQL数据库: php有3种方式操作MySQL数据库 (1)mysql扩展库 (2)mysqli扩展库 (3)pdo     mysql扩展库与mysql数据库 ...

  7. pdo操纵mysql数据库

    PDO是mysql数据库操作的一个公用类了,我们不需要进行自定类就可以直接使用pdo来操作数据库了,但是在php默认配置中pdo是未开启所以我们必须先在php.ini中开启它才可以使用,下文我会讲到. ...

  8. PHP操作MySQL数据库5个步骤

    PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...

  9. PDO创建mysql数据库并指定utf8编码

    <?php //PDO创建mysql数据库并指定utf8编码 header('Content-type:text/html; charset=utf-8'); $servername = &qu ...

随机推荐

  1. openCV 2.4.13 iOS background_segm.hpp 'list' file not found

    最近下载了最新版的OpenCV的Framework. 导入到项目里边,编译.然后就出现了问题 /opencv2.framework/Headers/video/background_segm.hpp: ...

  2. Asp.net Mvc 自定义Session (二)

    在 Asp.net Mvc 自定义Session (一)中我们把数据缓存工具类写好了,今天在我们在这篇把 剩下的自定义Session写完 首先还请大家跟着我的思路一步步的来实现,既然我们要自定义Ses ...

  3. Sublime 格式化代码 快捷键以及插件使用

    来自Vic___:http://blog.csdn.net/vic___ 其实在sublime中已经自建了格式化按钮: Edit  ->  Line  ->  Reindent 只是sub ...

  4. javascript默认中文(汉字/标点)长度均为1的解决

    javascript默认中文(汉字/标点)长度均为1 与后台(java)不一致, function calculate(str) { //var str="你好,哈哈哈000111lll&q ...

  5. Android中FTP服务器、客户端搭建以及SwiFTP、ftp4j介绍

    本文主要内容: 1.FTP服务端部署---- 基于Android中SwiFTP开源软件介绍: 2.FTP客户端部署 --- 基于ftp4j开源jar包的客户端开发 : 3.使用步骤 --- 如何测试我 ...

  6. Android SmsManager 发送短信

    SmsManager可以在后台发送短信,无需用户操作,开发者就用这个SmsManager功能在后台偷偷给SP发短信,导致用户话费被扣.必须添加android.permission.SEND_SMS权限 ...

  7. [置顶] Android开发之serviceManager分析

    Android 开发之serviceManager分析 在Android系统中用到最多的通信机制就是Binder,Binder主要由Client.Server.ServiceManager和Binde ...

  8. linux 修改文件时间

    1.ls -l *.sh 2.touch -d "10/13/2013" *.sh [我想把所以的.sh文件修改到三个月前(2013年10月13)的时间.]3.ls -l *.sh ...

  9. 获取java项目 classpath目录

    this.getClass().getResource("/").getPath(); 从根目录获取载入文件: this.getClass().getResourceAsStrea ...

  10. iOS中使用nil NULL NSNULL的区别

    nil NULL NSNULL的区别主要以下几点 1.nil:一般赋值给空对象 2.NLL:一般赋值给nil之外的其他空值.入SEL等. 3.NSULL:NSNULL只有一种方法+ (NSNull * ...