上一篇复习了php的基础知识,这一节主要复习Mysql的基础知识,同样,本文章对于很简单的内容就不在阐述了
1,连接数据库,mysql已经抛弃,不再考虑,可以使用mysqli,或者pdo

<?php // 面向对象方式mysqli方式连接数据库 $servername = "localhost"; $username = "root"; $password = "root"; // 创建连接 $conn = new mysqli($servername, $username, $password); if ($conn->connect_error) { die("连接失败".$conn->connect_error); } else { echo '连接成功'; } // 面向过程方式连接数据库 $conn = new mysqli($servername, $username, $password); if (!$conn) { die("连接失败".mysqli_connect_error()); } else { echo '连接成功'; } // pdo 方式连接数据库 try{ $conn = new pdo("mysql:host=$servername;dbname=test",$username,$password); echo '连接成功'; }catch(PDOException $e){ echo $e->getMessage(); }
2,创建数据库,分别使用mysqli方式和pdo方式

<?php // 面向对象方式mysqli方式连接数据库 $host = "localhost"; $username = "root"; $password = "root"; // mysqli创建连接 $conn = new mysqli($host, $username, $password); if ($conn->connect_error) { die('连接错误:'.$conn->connect_error); } $sql = "create database xuexi"; if ($conn->query($sql) === TRUE) { echo 'success'; } else { echo $conn->error; } // PDO 创建数据库 try{ $conn = new pdo("mysql:host=$host; dbname=xuexi",$username,$password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "create database myDBPDO"; $conn->exec($sql); echo 'success'; } catch (PDOException $e) { echo $sql, "<br />" . $e->getMessage(); } $conn = null;
3,mysqli和pdo的预处理语句方式新增数据

<?php /** * 预处理语句优点 * 格式:INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?) * 工作原理:预处理:创建SQL语句模板同时发送到数据库,预留的值使用参数?标记 * 数据库解析,编译,对sql语句进行查询优化,并存储结果 * 执行,将应用绑定的值传递给参数,数据库执行语句,应用可以多次执行语句 * 预处理语句大大减少了分析时间,只做了一次查询(虽然语句多次执行) * 绑定参数减少了服务器带宽,你只需要发送查询的参数,而不是整个语句 * 预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性 */ $host = "localhost"; $username = "root"; $password = "root"; $dbname = "xuexi"; $conn = new mysqli($host, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败:".$conn->connect_error); } // 预处理及绑定 $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)"); $stmt->bind_param('sss', $firstname, $lastname, $email); // 此处的sss表示是三个参数都是字符串型的 i - integer(整型) d - double(双精度浮点型) s - string(字符串) b - BLOB(binary large object:二进制大对象) # 设置并执行参数 $firstname = "John"; $lastname = "Doe"; $email = "john@example.com"; $stmt->execute(); $firstname = "Mary"; $lastname = "Moe"; $email = "mary@example.com"; $stmt->execute(); echo "新记录插入成功"; $stmt->close(); $conn->close(); // pdo方式预处理 try { $conn = new pdo("mysql:host = $host; dbname = $dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (:firstname, :lastname, :email)"); $stmt->bindParam(':firstname', $firstname); $stmt->bindParam(':lastname', $lastname); $stmt->bindParam(':email', $email); // 插入行 $firstname = "John"; $lastname = "Doe"; $email = "john@example.com"; $stmt->execute(); } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } $conn = null;
暂时先将php操作数据库的基础内容写到这儿,后续会有单独章节分别讲mysqli和pdo这两种操作数据库的形式,主要是pdo的操作方式。
接下来是mysql的基础知识