php操作mysql(数据库常规操作)
php操作数据库八步走
<?php
// 1、建立连接
$connection = mysqli_connect('127.0.0.1', 'root', ''); // 2、判断连接是否成功
if (mysqli_connect_error() != null) {
die(mysqli_connect_error());
} else {
echo "连接成功!";
} ///3、选择数据库
mysqli_select_db($connection, 'test'); ///4、设置字符集
mysqli_set_charset($connection, 'utf8'); ///5、书写 SQL 语句
$sql = "SELECT * FROM `user` LIMIT 1"; ///6、执行 SQL 语句
$result = mysqli_query($connection, $sql); ///7、解析结果集
$array = mysqli_fetch_array($result, MYSQLI_BOTH); ///8、关闭连接
mysqli_close($connection);
添加、更新、删除数据
<?php
// 连接数据库
$link = mysqli_connect('127.0.0.1', 'root', ''); // 判断数据库连接是否成功
if (!is_null(mysqli_connect_error())) {
die(mysqli_connect_error());
} // 选择数据库
mysqli_select_db($link, 'test'); // 设置连接字符集
mysqli_set_charset($link, 'utf8'); // 书写 SQL 语句
// $sql = "INSERT INTO `user` (`username`, `password`) VALUES('user-5', 'password-5')";//增加数据
// $sql = "UPDATE user SET password='password' WHERE id > 4";//修改数据
$sql = "DELETE FROM user WHERE id > 4";//删除数据 // 执行 SQL 语句
$result = mysqli_query($link, $sql); // 解析 SQL 语句执行结果
if ($result) {
echo "执行成功!"
. " 成功删除了数据 " . mysqli_affected_rows($link) . " 条!";
// . " 插入数据的 ID 是 " . mysqli_insert_id($link) . "。";
} else {
echo "执行失败!";
} // 关闭连接,释放资源
mysqli_close($link);
简单查询和数据解析
<?php
// 建立连接
$link = mysqli_connect('127.0.0.1', 'root', ''); // 判断连接是否成功
if (mysqli_connect_error() != null) {
die(mysqli_connect_error());
} // 选择数据库
mysqli_select_db($link, 'test'); // 设置字符集
mysqli_set_charset($link, 'utf8'); // 书写 SQL 语句
$sql = "SELECT good, class, price, stock FROM good WHERE id < 4"; // 执行 SQL 语句
$result = mysqli_query($link, $sql); // 解析结果集
echo "<pre>";
$data = mysqli_fetch_array($result);
var_dump($data); while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
var_dump($row);//使用或输出所有查询的数据
} while ($row = mysqli_fetch_row($result)) {
var_dump($row);//把查询结果返回到一个数组中,用数字索引取值
} while ($row = mysqli_fetch_assoc($result)) {
var_dump($row);//把查询结果返回到一个数组中,用关键字索引取值
} while ($row = mysqli_fetch_object($result)) {
var_dump($row);//从结果集中取得当前行,并作为对象返回
} $data = mysqli_fetch_all($result, MYSQLI_BOTH);//从结果集中取得所有行作为关联数组
var_dump($data); $num = mysqli_num_rows($result);
echo "共查询到 " . $num . " 条数据!";
$num = mysqli_num_fields($result);
echo "共查询到 " . $num . " 列数据!"; // 关闭连接
mysqli_close($link);
复杂查询
<?php
// 建立连接
$link = mysqli_connect('127.0.0.1', 'root', ''); // 判断连接是否成功
if (mysqli_connect_error() != null) {
die(mysqli_connect_error());
} // 选择数据库
mysqli_select_db($link, 'test'); // 设置字符集
mysqli_set_charset($link, 'utf8'); // 书写 SQL 语句
$sql = "SELECT good.*, class.class FROM good, class WHERE good.class = class.id AND good.stock >= 25 AND good.price <= 50 AND good.class = 4 ORDER BY good.price ASC LIMIT 6"; // 执行 SQL 语句
$result = mysqli_query($link, $sql); // 解析结果集
echo "<table border=''>";
echo "<tr>";
echo "<th>ID</th>";
echo "<th>商品</th>";
echo "<th>类别</th>";
echo "<th>单价</th>";
echo "<th>库存</th>";
echo "<th>更新时间</th>";
echo "<th>创建时间</th>";
echo "</tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td width='100px'>" . $row['id'] . "</td>";
echo "<td width='100px'>" . $row['good'] . "</td>";
echo "<td width='100px'>" . $row['class'] . "</td>";
echo "<td width='100px'>" . $row['price'] . "</td>";
echo "<td width='100px'>" . $row['stock'] . "</td>";
echo "<td width='100px'>" . $row['updated_at'] . "</td>";
echo "<td width='100px'>" . $row['created_at'] . "</td>";
echo "</tr>";
}
echo "</table>"; // 关闭连接
mysqli_close($link);
程序错误排查
<?php
// 建立连接
$link = mysqli_connect('127.0.0.1', 'root', ''); // 判断连接是否成功
if (mysqli_connect_error() != null) {
die(mysqli_connect_error());
} // 选择数据库
mysqli_select_db($link, 'test'); // 设置字符集
mysqli_set_charset($link, 'utf8'); // 书写 SQL 语句
// $sql = "SELECT * FROM good ORDER BY price ASC GROUP BY class";
$sql = "INSERT INTO good (good, class, price, stock) VALUES('test', 'test', 20, 56)";
// $sql = "INSERT INTO class(class) VALUES('水果')"; // 执行 SQL 语句
$result = mysqli_query($link, $sql); // 解析结果集
// var_dump($result);
$error = mysqli_error($link);
$errno = mysqli_errno($link); echo "SQL 语句执行失败!错误代码:" . $errno . ",错误信息:" . $error; // 关闭连接
mysqli_close($link);
php操作mysql(数据库常规操作)的更多相关文章
- Python学习(21)python操作mysql数据库_操作
目录 数据库连接 创建数据库表 数据库插入操作 数据库查询操作 数据库更新操作 删除操作 执行事务 错误处理 数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TEST. 在TEST数 ...
- Mysql数据库常规操作(建表、查询)
一.表单操作 1-1.创建表 create table tb_name( id in primary key auto_increment); 1-2.查看表 desc table_name; ...
- python操作mysql数据库系列-操作MySql数据库(二)
接口测试框架层级目录结构示意图: page目录下面的mysqlTest.py:存放的是mysql的操作代码 utils目录下面的helper.py:存放的是公共的配置方法 log目录log.md:存放 ...
- 【tips】ORM - SQLAlchemy操作MySQL数据库
优先(官方文档SQLAlchemy-version1.2): sqlalchemy | 作者:斯芬克斯 推荐一(长篇幅version1.2.0b3):python约会之ORM-sqlalchemy | ...
- Python操作Mysql数据库时SQL语句的格式问题
一.概述 近日使用Python对Mysql数据库进行操作,遇到SQL语句死活出问题的情况.由于最初没有将异常打印出来,一直不知道原因.随后,将异常打印出来之后,通过异常信息,对代码进行修改.最终,成功 ...
- PHP操作MySQL数据库5个步骤
PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- zabbix数据库mariadb从服务器迁移到云mysql数据库的操作
zabbix数据库mariadb从本机迁移到云mysql数据库的操作 1.将zabbix数据库导出,并导入到云数据库中 由于数据库较大,如果直接使用shell会话中断会导致数据库导出或者导入失败,使用 ...
- 转 用C API 操作MySQL数据库
用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...
- PHP操作mysql数据库:[2]查询数据听语音
本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料 Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言 ...
随机推荐
- Visual Studio Code | 报错 command 'markdown.extension.onBackspaceKey' not found
背景 今天使用Visual Strudio Code想用键盘Back去删除一些字符,发现报如下错误: command 'markdown.extension.onBackspaceKey' not f ...
- Java 设计模式之抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在抽 ...
- .Net Core初识以及启动配置
.net程序员为什么要学习.net core .Net Core 是.Net的未来,微软在19年 5月已经明确说明,未来只有.Net 5(=.NET Core vNext),.Net 5是.net c ...
- python人脸识别
需要掌握知识python,opencv和机器学习一类的基础 过一段时间代码上传github,本人菜j一个,虽然是我自己谢的,也有好多不懂,或者我这就是错误方向 链接:https://pan.baidu ...
- SpringBoot学习遇到的问题(1) - 配置文件有日志的debug模式等配置项,为什么不起作用
这个问题困扰我近乎两天,通过查找N多资料后终于解决,写下来共享给大家. logging.level.root=DEBUG ... 一系列的日志配置项,都不起作用的原因是springboot启动加载不到 ...
- Java并发读书笔记:线程安全与互斥同步
目录 导致线程不安全的原因 什么是线程安全 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 互斥同步实现线程安全 synchronized内置锁 锁即对象 是否要释放锁 实现原理 啥是重进入? ...
- javabst1an
(单选题)下列概念中不包括任何实现,与存储空间没有任何关系的是() A)类 B)接口 C)抽象类 D)对象 正确答案为:B解析:接口是一种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现 ...
- nginx 源码编译 用OPENSSL源码 开启 SSL
./configure --prefix=/usr/local/nginx --with-openssl=/home/uniqs/thirdparty/openssl/openssl-1.1.1d - ...
- Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
- Shell: 定期存档日志文件
简介 对于日志的分割删除我们一般会使用logratate,但对于项目较多的情况下,会让开发直接将日志分割写在代码里面,对于分割后过期的日志定期删除就很有必要,不然膨胀的日志会占满你的磁盘,将多余的日志 ...