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'); /************************在数据 ...
随机推荐
- 第 8 章 MySQL 数据库 Query 的优化
前言: 在之前“影响 MySQL 应用系统性能的相关因素”一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 Query 语句的优化进行相应的分析. ...
- Assert与内存泄漏
以前知道C/C++有assert之后,我想知道assert会不会造成内存泄漏,于是我做了一个测试: #include <iostream> #include <fstream> ...
- Java IO流之内存流
内存流 1)内存流主要用来操作内存 2)分类 ByteArrayInputStream 主要完成将内容从内存读入程序之中 ByteArrayOutputStream 主要是将数据写入到内存中. 3)输 ...
- python爬虫从入门到放弃(九)之 实例爬取上海高级人民法院网开庭公告数据
通过前面的文章已经学习了基本的爬虫知识,通过这个例子进行一下练习,毕竟前面文章的知识点只是一个 一个单独的散知识点,需要通过实际的例子进行融合 分析网站 其实爬虫最重要的是前面的分析网站,只有对要爬取 ...
- 云计算之路-阿里云上:14:20-14:55博客后台2台服务器都CPU 100%引发的故障
非常抱歉,今天下午14:20-14:55期间,由于同一个负载均衡中的2台服务器都出现CPU 100%问题,造成博客后台无法正常访问,由此给您带来了很大很大的麻烦,请您谅解. 博客后台是CPU消耗很低的 ...
- Spring学习(6)---Bean定义及作用域的例子
(一)Bean的定义 先定义一个BeanAnnotation package com.mypackage; import org.springframework.stereotype.Componen ...
- EJB基础知识
本人博客文章网址:https://www.peretang.com/basic-knowledge-of-ejb/ 什么是EJB 可移植的, 可重用的, 可伸缩的业务应用程序的平台 为什么选择EJB ...
- grid编辑后时间格式不对问题
在column中应该定义xtype和format格式: xtype: 'datecolumn', format:'Y-m-d' 之后正常
- Java代码实现 增删查 + 分页——实习第四天
今天项目内容已经开始了,并且已经完成好多基本操作,今天就开始总结今天学习到的内容,和我遇到的问题,以及分析这其中的原因. 内容模块: 1:Java代码实现对数据库的增删查: 2:分页且获取页面信息: ...
- MFC简单绘制安卓机器人
原始日期:2014-03-29 20:35 众所周知,google的安卓机器人形象十分经典,包括眼睛的位置,胳膊以及天线的位置都是有固定位置和比例的,而且是最恰当的,看起来最美.而微软基础类库MFC绘 ...