PHP连接数据库、创建数据库、创建表的三种方式
这篇博客主要介绍了三种方式来连接MySQL数据库以及创建数据库、创建表。(代码是我在原来的基础上改的)
- MySQLi - 面向对象
- MySQLi - 面向过程
- PDO
MySQLi 面向对象
<?php
//实例 (MySQLi - 面向对象)创建数据库连接
echo "实例 (MySQLi - 面向对象)<br/>";
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
/*
*注意在以上面向对象的实例中 $connect_error 是在 PHP 5.2.9 和 5.3.0 中添加的。
* 如果你需要兼容更早版本 请使用以下代码替换:
// 检测连接
if (mysqli_connect_error()) {
die("数据库连接失败: " . mysqli_connect_error());
}
*/
// 创建数据库myDB
$sql = "CREATE DATABASE test";
if ($conn->query($sql) === TRUE) {
echo "数据库创建成功";
} else {
echo "<mark><br/>Error creating database: " . $conn->error."</mark>";
echo "<br/>";
}/* 注意: 当你创建一个新的数据库时,你必须为 mysqli 对象指定三个参数 (servername, username 和 password)。
Tip: 如果你使用其他端口(默认为3306),为数据库参数添加空字符串,指定端口号
如: new mysqli("localhost", "username", "password", "", port)*/
echo "连接成功<br/>";
$conn->close();//关闭连接
echo "关闭连接<br/>";
?>
<?php
//实例 (MySQLi 面向对象)创建表格
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
echo "<br/>";
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 使用 sql 创建数据表MyGuests
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
echo "<mark>";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "创建数据表错误: " . $conn->error;
}echo "</mark>";
//连接
$conn->close();
?>
MySQLi 面向过程
<?php
//实例 (MySQLi 面向过程)--创建数据库连接
echo "实例 (MySQLi面向过程)<br/>";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
//创建数据库
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "<br/>数据库创建成功";
} else {
echo "<mark><br/>Error creating database: " . mysqli_error($conn)."</mark>";
}
echo "<br/>连接成功<br/>";
mysqli_close($conn);
echo "关闭连接<br/>";
?>
<?php
//实例 (MySQLi 面向过程)创建数据库连接
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
echo "<br/>";
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
$dbname = "myDB";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检测连接
if (!$conn) {
echo "<mark>";
die("连接失败: " . mysqli_connect_error());
echo "</mark>";
}
// 使用 sql 创建数据表MyGuests
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
echo "<mark>";
if (mysqli_query($conn, $sql)) {
echo "数据表 MyGuests 创建成功";
} else {
echo "创建数据表错误: " . mysqli_error($conn);
} echo "</mark>";
mysqli_close($conn);
?>
(PDO)创建数据库连接
<?php
//实例 (PDO)--创建数据库连接
echo "实例 (PDO)<br/>";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
try {
$conn = new PDO("mysql:host=$servername;dbname=mysql", $username, $password);
echo "<br/>连接成功<br/>";
//创建数据库
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE DATABASE myDBPDO";
// 使用 exec() ,因为没有结果返回
$conn->exec($sql);
echo "<mark>数据库创建成功<br></mark>";
}catch(PDOException $e)
{
echo "<mark>".$sql . "<br>" . $e->getMessage()."</mark>";
echo "<br/>";
}
$conn = null;
echo "关闭连接<br/>";
?>
<?php
//实例 (PDO)--创建数据库连接
echo "实例 (PDO)<br/>";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
echo "<br/>";
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式,用于抛出异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 使用 sql 创建数据表
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
// 使用 exec() ,没有结果返回
$conn->exec($sql);
echo "<mark>数据表 MyGuests 创建成功</mark>";
}
catch(PDOException $e)
{
echo "<mark><br>".$sql . "<br>" . $e->getMessage()."<br></mark>";
}
//关闭连接
$conn = null;
?>
本文代码参考修改自http://www.runoob.com/php/php-mysql-connect.html
PHP连接数据库、创建数据库、创建表的三种方式的更多相关文章
- C#与数据库的连接的三种方式
学习了.net的知识从C#一直到MVC,我一直觉得基础很重要,最近有复习一下数据库连接的三种方式 1 返回结果集的一张表 public static DataTable ExecuteDataTabl ...
- django基础之day09,多对多创建数据表的三种方式
多对多三种创建方式 1.全自动(用在表关系不复杂的一般情况) class Book(models.Model): title=models.CharField(max_length=32) 多对多关系 ...
- Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...
- Mysql 删除数据表的三种方式详解
用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, 用 delete. 删除强度:dro ...
- 通过SQL脚本导入数据到不同数据库避免重复导入三种方式
前言 无论何种语言,一旦看见代码中有重复性的代码则想到封装来复用,在SQL同样如此,若我们没有界面来维护而且需要经常进行的操作,我们会写脚本避免下次又得重新写一遍,但是这其中就涉及到一个问题,这个问题 ...
- 【Oracle】表连接三种方式
表连接的方式有三种分别是:排序合并连接(Sort Merge Join).嵌套循环连接(Nested Loops Join).哈希连接(Hash Join). 1. 排序合并连接(Sort Merge ...
- 七十三、SAP中清空内表的三种方式
一.上代码 二.需要注意的是 * CLEAR 只能清空不带WITH HEADER LINE的内表* REFRESH 能清空内表,但是不回收内存* FREE 能清空内表并回收内存,但是此内表还能继续使用
- redis数据库服务器开启的三种方式
redis的启动方式1.直接启动 进入redis根目录,执行命令: #加上‘&’号使redis以后台程序方式运行 1 ./redis-server & 2.通过指定配置文件启动 ...
- PHP创建数据库数据表
PHP创建数据库数据表 <?php $con = mysql_connect('localhost', 'root', 'root'); /************************在数据 ...
随机推荐
- Spring Boot 学习(3)
文 by / 林本托 Tips 做一个终身学习的人. Tips 代码路径:https://github.com/iqcz/Springbootdemo/tree/master/code01/ch3 W ...
- 微信小程序封装http访问网络库实例代码
之前都是使用LeanCloud为存储,现在用传统API调用时做如下封装 var HOST = 'http://localhost/lendoo/public/index.php/'; // 网站请求接 ...
- 每天一个JS 小demo之商品下架特效制作,主要知识点:定时器,倒计时,抖动特效。PS:由于不方便上传文件夹,只能上传效果图,图片等素材需自寻哟。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Java对【JSON数据的解析】--Gson解析法
Gson和fastjson分别为谷歌和阿里巴巴对JSON数据进行处理封装的jar包 两者异同点: 相同点:都是根据JSON数据创建相应的类 不同点: 1.调用方式区别 谷歌:方法都是非静态的,需要先创 ...
- lucene全文搜索之一:lucene的主要功能和基本结构(基于lucene5.5.3)
前言:lucene并不是像solr或elastic那样提供现成的.直接部署可用的系统,而是一套jar包,提供了一些常见语言分词.构建索引和创建搜索器等等功能的API,我们常用到的也就是分词器.索引目录 ...
- javaCV开发详解之技术杂烩:javaCV能帮我们做什么?能实现什么功能?ffmpeg和openCV能实现功能,javaCV如何做到更快、更简单的实现相应的功能?等等一堆实用话题
前言: 该篇文章旨在帮助刚接触javaCV的盆友系统的认识音视频.javaCV.图像处理相关的体系知识和一些实用的知识. 序: javaCV早期因为内置了openCV库,所以常用来做图像识别应用,现在 ...
- Spring学习(5)---Bean的定义及作用域的注解实现
Bean管理的注解实现 Classpath扫描与组件管理 类的自动检测与注册Bean <context:annotation-config/> @Component,@Repository ...
- 写JS自执行函数时要注意的
JS是非强类型语言,且IDE也不够智能,所以经常会在语句结束时漏写了分号,一般情况下这是不影响运行的, 但如果后面跟上的是一段自执行的函数,就会报出 "..... is not functi ...
- jQuery之stop()
开启第一篇原创博客,内容朴实,但绝对属实. 先来看看w3c的定义和语法: 定义:stop() 方法停止当前正在运行的动画. 语法:$(selector).stop(stopAll,goToEnd) 参 ...
- 惊心动魄的SAP S4客户额度调整运动
今天一大早,收到商务部发来的消息,说某一个客户的额度超额了,但实际上并未超额.从SAP系统中反馈的额度来看,显示超了2万多.后来经过在BP画面检查信用段发现,这个客户额度占用里面,某一个未清订单已经部 ...