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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容