攻玉之石之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 中使用该函数可能会出现警告信息。
这里我们可以添加
@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();
?>
实例如下:
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();
?>
实例如下:
这里需要特别注意多条插入的语法格式
图片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();
?>
实例如下:
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();
?>
实例如下:
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();
?>
实例如下:
另外再补充一个方法,
$conn->query($sql)
用于执行$sql 语句欢迎访问阿威的博客 https://www.cnblogs.com/TWX521/ 专注技术与交流,stay hungry stay foolish
2.gif