MYD网络安全实验室

攻玉之石之MySql 基础操作(PHP操作)

2019-01-28  本文已影响24人  有一个男孩叫阿威

PHP 连接MySql
使用mysql_connect函数来连接,语法如下:

resource mysql_connect([string server [, string username [,string password [, bool new_link [, int_client_flags]]]]])

该函数用来打开或重复使用一个到mysql服务器的连接。server是需要连接的mysql服务器,可以包括端口号使用英文的冒号隔开,例如“hostname:port”。username和password分别是连接数据时所需的用户名和密码。new_link参数默认为FALSE,如果用同样的参数第二次调用mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。设置为false时,则总是打开新的连接。
代码如下:

<p>连接到mysql数据库</p>
<?php
header("Content-Type: text/html;charset=utf-8");
error_reporting(0); //禁止错误输出
$link = mysql_connect('127.0.0.1:3306','username','password'); //创建数据库连接
if(!$link){ //如果失败
    die('连接mysql数据库失败'.mysql_error()); //显示出错误信息
}
echo '连接mysql服务器成功!'; //否则显示连接成功的信息
mysql_close($link); //最后关闭数据库连接
?>

但是有一点,在 PHP 早期版本中我们使用 MySql 扩展。但该扩展在 2012 年开始不建议使用。所以我们在高版本的PHP 中使用该函数可能会出现警告信息。

图片1.png
这里我们可以添加@mysql_connect函数来忽略掉警告信息,或者使用最新的mysqli_connect函数来实现连接,并且可以运用到面向对象的思想。
代码如下:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
 
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
echo "连接成功";
?>

关闭连接,$conn->close();
PHP 设置活动的数据库
mysql_select_db() 函数设置活动的 MySql 数据库。
如果成功,则该函数返回 true。如果失败,则返回 false。
同样的这个函数在高版本的PHP 中并不适用,所以我们使用mysqli_select_db() 函数进行设置。
代码如下:

<?php 
$con=mysqli_connect("localhost","username","password"); 
if (mysqli_connect_errno($con)) 
{ 
    echo "连接 MySql 失败: " . mysqli_connect_error(); 
} 
// 设置数据库为 "test"
mysqli_select_db($con,"test");
 //关闭连接
mysqli_close($con);
?>

PHP 创建数据库和表
创建数据库代码如下:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
 
// 创建数据库
$sql = "CREATE DATABASE twx_test";
if ($conn->query($sql) === TRUE) {
    echo "数据库创建成功";
} else {
    echo "Error creating database: " . $conn->error;
}
 
$conn->close();
?>

实例如下:


图片2.png

创建表代码如下:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
// 设置数据库为 "test"
mysqli_select_db($conn,"twx_test");
// 创建表
$sql = "CREATE TABLE tb1(
id INT  PRIMARY KEY, 
name VARCHAR(30) NOT NULL
)";
if ($conn->query($sql) === TRUE) {
    echo "表创建成功";
} else {
    echo "Error creating table: " . $conn->error;
}
 
$conn->close();
?>

实例如下:

图片3.png
PHP 插入数据到数据库
插入语句代码如下:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
// 设置数据库为 "test"
mysqli_select_db($conn,"twx_test");
// 插入数据
$sql = "insert into tb1 (id,name) values (1,'twx')";
if ($conn->query($sql) === TRUE) {
    echo "数据插入成功";
} else {
    echo "Error!!!" . $conn->error;
}
 
$conn->close();
?>

实例如下:


图片4.png

这里需要注意PHP 操作MySql 的一些关键语法点

PHP 中 SQL 查询语句必须使用引号
在 SQL 查询语句中的字符串值必须加引号
数值的值不需要引号
NULL 值不需要引号

PHP 插入多条语句
代码如下:

<?php
$servername = "localhost";
$username = "root";
$password = "";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
// 设置数据库为 "test"
mysqli_select_db($conn,"twx_test");
// 插入数据
$sql = "INSERT INTO tb1 (id, name)
VALUES (1, 'twx');";
$sql .= "INSERT INTO tb1 (id, name)
VALUES (2, 'zfw');";
$sql .= "INSERT INTO tb1 (id, name)
VALUES (3, 'ztx');";
$sql .= "INSERT INTO tb1 (id, name)
VALUES (4, 'xmp')";
if ($conn->multi_query($sql) === TRUE) {
    echo "数据插入成功";
} else {
    echo "Error!!!" . $conn->error;
}
 
$conn->close();
?>

实例如下:

图片5.png
这里需要特别注意多条插入的语法格式
图片6.png
mysqli_multi_query() 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。语法格式:mysqli_multi_query(connection,query);
PHP 读取数据
代码如下:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
// 设置数据库为 "test"
mysqli_select_db($conn,"twx_test");
// 创建数据库
$sql = "SELECT id, name FROM tb1";
$result = $conn->query($sql);
 
if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 结果";
}
 
$conn->close();
?>

实例如下:

图片7.png
mysql_num_rows() 函数返回结果集中行的数目。语法:mysql_num_rows(data)
fetch_assoc() 函数从结果集中取得一行作为关联数组
PHP 修改数据库数据
代码如下:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
// 设置数据库为 "test"
mysqli_select_db($conn,"twx_test");
// 修改数据
$sql = "update tb1 set name='dmg' where id = 4";
if ($conn->query($sql) === TRUE) {
    echo "数据修改成功";
} else {
    echo "Error!!!" . $conn->error;
}

$conn->close();
?>

实例如下:

图片8.png
PHP 删除数据库数据
代码如下:
<?php
$servername = "localhost";
$username = "root";
$password = "";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
// 设置数据库为 "test"
mysqli_select_db($conn,"twx_test");
// 删除数据
$sql = "delete from tb1 where id = 4";
if ($conn->query($sql) === TRUE) {
    echo "数据删除成功";
} else {
    echo "Error!!!" . $conn->error;
}

$conn->close();
?>

实例如下:

图片9.png
另外再补充一个方法,$conn->query($sql)用于执行$sql 语句
欢迎访问阿威的博客 https://www.cnblogs.com/TWX521/ 专注技术与交流,stay hungry stay foolish
2.gif
上一篇下一篇

猜你喜欢

热点阅读