数据库,与PHP连接

网络服务环境都搭建好了,还差与数据库进行交互呢。

[TOC]


MySQL 数据库常用命令

前置小“芝士”

名词 通俗解释
数据库 就像一个档案夹,里面放着很多的表格
数据表 相当于档案夹里面其中一个表格
字段 相当于 Eexcel 的表头
主键 唯一、不重复的内容

远程连接

语法 mysql -h [host] [-P port] -uroot -p
host (必选)远程数据库的 IP 地址
-P port (可选)远程数据库的端口

创建数据库

CREATE DATABASE 数据库名;

选择数据库

USE 数据库名;

创建数据表

CREATE TABLE IF NOT EXISTS 表名 (
    `id` INT UNSIGNED AUTO_INCREMENT,
    `text` VARCHAR(255) NOT NULL,
    PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据

INSERT INTO 表名 (`id`, `text`)
                VALUES
                (1, '文本');

查询和查询指定数据

SELECT * FROM 表名;
SELECT id,text FROM 表名;
SELECT * FROM 表名 WHERE id=1;

修改数据表名、数据表字段

# 数据表重命名
ALTER TABLE 表名 RENAME TO 修改的表名;
# 删除数据表字段
ALTER TABLE 表名 DROP 字段名;
# 在末尾添加新的字段
ALTER TABLE 表名 ADD 字段名 数据类型(长度);
# 在第一列添加新字段
ALTER TABLE 表名 ADD 字段名 数据类型(长度) FIRST;
# 在某个字段后面添加字段
ALTER TABLE 表名 ADD 字段名 数据类型(长度) AFTER 某字段;

修改字段名和数据类型

ALTER TABLE 表名 MODIFY 字段 新数据类型(长度);
ALTER TABLE 表名 CHANGE 字段 新字段名 新数据类型;

删除数据库和数据表

DROP DATABASE 数据库名;
DROP TABLE 表名;

删除指定字段的数据记录

DELETE FROM 表名 WHERE id=1;

完全删除数据记录并清除主键的值,重新由 0 开始

TRUNCATE TABLE 表名;

更新指定数据记录

UPDATE 表名 SET 字段=新内容,字段=新内容 WHERE id=1;

SQLite 数据库常用命令

创建数据库

sqlite3 数据库名.db
.open 数据库名.db

创建数据表

CREATE TABLE 表名(
   id INT PRIMARY KEY     NOT NULL,
   text           TEXT    NOT NULL
);

插入数据

INSERT INTO 表名 (id, text)
                VALUES
                (1, '文本');

查询和查询指定数据

SELECT * FROM 表名;
SELECT id,text FROM 表名;
SELECT * FROM 表名 WHERE id=1;

删除数据并清空主键记录

DELETE FROM 表名;
UPDATE sqlite_sequence SET seq = 0 WHERE name ='表名';

其他语句基本与 MySQL 没有差别。

PHP与其连接

连接 MySQL

$servername = "localhost";
$username = "username";
$password = "password";
$dbName = "databaseName"
 
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbName);

// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 

$conn->close();

连接 SQLite

// 把 SQLite3 引用到 MyDB 类中
class MyDB extends SQLite3
{
    // __construct构造函数,对象创建完成后第一个调用方法
    function __construct()
    {
        // 通过 SQLite3 提供的接口API open,打开数据库
        $this->open('test.db');
    }
}

// 实例化 MyDB 类
$db = new MyDB();
if(!$db){
    // lastErrorMsg() 返回最近一次失败的 SQLite 请求的英文描述文本
    echo '连接失败:' . $db->lastErrorMsg();
}