windows 环境下mysql的操作浅析

windows 环境下mysql的操作

一,MYSQL 的连接

在下载安装好mysql后,访问数据控之前我们需要先连接数据库:
建立一个connect.php 的文件:
(面向过程)

<?php
header('Content-type: text/html; charset=utf-8');
$host = "localhost";
$username = "root";
$password = "root";
 
// 创建连接
$conn = mysqli_connect($host, $username, $password);
 
// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}else{
echo "连接成功";
}
mysqli_set_charset($conn,'utf-8');
?>

连接特定的数据库:(连接名为mybase 的数据库)
注释: mybase数据库是已经建好的,数据库名字不分大小写

<?php
header('Content-type: text/html; charset=utf-8');
$host = "localhost";
$username = "root";
$password = "root";
$dbname = "myb";

// 创建连接
$conn = mysqli_connect($host, $username, $password,$dbname);

// 检测连接
if (mysqli_connect_errno($conn)) {
    die("Connection failed: " . mysqli_connect_error($conn));
}else{
    echo '连接成功';
}
mysqli_set_charset($conn,'utf-8');

。windows中 默认的username 是root 密码也是root
。header(‘Content-type: text/html; charset=utf-8’);
mysqli_set_charset($conn,‘utf-8’); 这两句是将格式设置为utf-8

简写形式:

<?php
header('Content-type: text/html; charset=utf-8');

// 创建连接
$conn = mysqli_connect("localhost", "root", "root", "mybase" );

// 检测连接
if (mysqli_connect_erron($conn)){
echo "链接失败" . mysqli_connect_error();
}

mysqli_set_charset($conn,'utf-8');

二 建立数据库

前面已经连接成功时,可以创建自己的数据库。
创建一个名为 mybse 的数据库
脚本文件命名为 create_dbase.php:
(面向过程)

<?php
require 'connect.php'; //刚才已经创建了连接数据库的脚本,所以这里直接引用即可
//创建数据库
$sql = "CREATE DATABASE mybase";
if (mysqli_query($conn, $sql)) {
    echo "数据库创建成功";
} else {
    echo "Error creating database: " . mysqli_error($conn);
}

mysqli_close($conn); // 关闭数据库,必不可少!
?>

三,建立数据库的数据表

创建好名为 mybase 的数据库之后 ,现在在数据库中建立表
(面向过程)
建立 create_table.php :

<?php
require 'connect.php';//连接数据库
//创建数据表
$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
)";

if (mysqli_query($conn, $sql)) {
    echo "数据表 MyGuests 创建成功";
} else {
    echo "创建数据表错误: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

NOT NULL - 每一行都必须含有值(不能为空),null 值是不允许的。
DEFAULT value - 设置默认值
UNSIGNED - 使用无符号数值类型,0 及正数
AUTO INCREMENT - 设置 MySQL 字段的值在新增记录时每次自动增长 1
PRIMARY KEY - 设置数据表中每条记录的唯一标识。 通常列的 primary key 设置为 ID 数值,与 AUTO_INCREMENT 一起使用。

四,插入数据

建立好数据表后 ,像数据表中插入数据
(面向过程)
建立 insert.php
插入单条数据:

<?php

require 'connect.php';

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

插入多条数据:

<?php
require  'connect.php';

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('luo', 'Doe', 'jlio@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";

if (mysqli_multi_query($conn, $sql)) {
    echo "新记录插入成功33";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

运用预处理插入多条数据

预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高。
1,预处理:创建 SQL 语句模板并发送到数据库。预留的值使用参数 “?” 标记 。例如:

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

2,数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出。
3,执行:最后,将应用绑定的值传递给参数("?" 标记),数据库执行语句。应用可以多次执行语句,如果参数的值不一样。

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

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

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

预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性。
面向对象)代码如下:

<?php
$host = "localhost";
$username = "root";
$password = "root";
$dbname = "mybase";
 
// 创建连接
$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);
 
// 设置参数并执行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
 
$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();
 
$firstname = "Julie";
$lastname = "Dooley";
$email = "julie@example.com";
$stmt->execute();
 
echo "新记录插入成功";
 
$stmt->close();
$conn->close();
?>

解析以下实例的每行代码:

“INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)”
在 SQL 语句中,我们使用了问号 (?),在此我们可以将问号替换为整型,字符串,双精度浮点型和布尔值。

接下来,让我们来看下 bind_param() 函数:

$stmt->bind_param(“sss”, $firstname, $lastname, $email);
该函数绑定了 SQL 的参数,且告诉数据库参数的值。 “sss” 参数列处理其余参数的数据类型。s 字符告诉数据库该参数为字符串。

参数有以下四种类型:

i - integer(整型)
d - double(双精度浮点型)
s - string(字符串)
b - BLOB(binary large object:二进制大对象)

五,读取数据库数据

建立 read.php
(面向过程)

<?php

require 'connect.php';

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // 输出数据
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 结果";
}
mysqli_close($conn);

有条件的读取数据库

WHERE 子句用于过滤记录。

<?php
require 'connect.php';

$result = mysqli_query($con,"SELECT * FROM Persons
WHERE FirstName='Peter'");

while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'] . " " . $row['LastName'];
    echo "<br>";
}
?>

上述代码 要求显示 firstname = ‘Peter’ 的数据

六,根据特定条件对数据进行排序

ORDER BY 关键词用于对记录集中的数据进行排序。
ORDER BY 关键词默认对记录进行升序排序。

如果你想降序排序,请使用 DESC 关键字。
建立 sort.php
下面的实例选取 “Persons” 表中存储的所有数据,并根据 “Age” 列对结果进行排序:
(面向对象)

<?php
require ‘connect.php’

$result = mysqli_query($con,"SELECT * FROM Persons ORDER BY age");

while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'];
    echo " " . $row['LastName'];
    echo " " . $row['Age'];
    echo "<br>";
}

mysqli_close($con);
?>

七,更新(修改)数据库

UPDATE 语句用于更新数据库表中已存在的记录

注释:请注意 UPDATE 语法中的 WHERE 子句。WHERE 子句规定了哪些记录需要更新。如果您想省去 WHERE 子句,所有的记录都会被更新!
建立 updata.php

<?php
require ‘connect.php’

mysqli_query($con,"UPDATE Persons SET Age=36
WHERE FirstName='Peter' AND LastName='Griffin'");

mysqli_close($con);
?>

本例将 firstname = ‘Petet’ ,lastname =‘Griffin’ 的Age 改为了36

八,删除数据

DELETE FROM 语句用于从数据库表中删除记录。
建立 dalete.php

<?php
require ‘connect.php’;

mysqli_query($con,"DELETE FROM Persons WHERE LastName='Griffin'");

mysqli_close($con);
?>

删除了 lastname =‘Griffin’ 的数据条。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值