PHP操作MYSQL数据库

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: PHP连接MYSQL方式分别有MYSQL、MYSQLI、PDO接口。

MYSQL接口配置

Linux

必须在编译时加上一个—with-mysql选项

windows

通过一个DLL文件提供了相应的扩展

共同配置

不管使用是哪一种操作系统,都必须在php.ini文件里启用这个扩展以确保PHP能够找到所有必要的DLL

  • extension=php_mysql.dll
  • extension=php_mysqli.dll
  • extension=php_pdo_mysql.dll

PHP操作数据库步骤

screenshot

PHP连接MySQL

连接成功,则返回一个标识号码。否则返回FALSE,并报错。@connect(localhost,root,密码)可以屏蔽错误显示。

mysql_connect(localhost,root,密码);

PHP选择操作的数据库

与MySQL服务器建立连接后,成功时返回 TRUE , 或者在失败时返回 FALSE 。

mysql_select_db(数据库名称);

设置mysql编码

编码要与mysql数据库设置编码保持一致 否则乱码

mysql_query('SET NAMES UTF8');

执行SQL命令

为了执行SQL命令,需要把它们作为一个字符串传递给mysql_query()函数。

SQL命令执行成功,返回PHP资源的引用指针( 一个Resource id #2格式的字符串); 否则将返回FALSE,并生成一条出错消息;
mysql_query()函数可以用来执行任何一种SQL命令,比如 SELECT(查询)、INSERT(插入新记录)、UPDATE(修改现有记录)、DELETE(删除现有记录)、CREATE TABLE(创建新数据表)、ALTER TABLE(修改数据表结构)等。

mysql_query($sql)

获取和显示数据

函数 说明
mysql_fetch_row() 返回一条结果普通数组,它的各个字段需要以$row[n]的方式进行访问。
mysql_fetch_assoc() 返回一条结果关联数组,但它的各个字段只能以 $row["colname"]的方式进行访问。
mysql_free_result() 提前释放某次查询结果
mysql_num_rows() 获取查询返回的记录数
mysql_insert_id() 获取INSERT 操作产生的 ID
mysql_affected_rows () 获取前一次 MySQL 操作所影响的记录数 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数

PHP关闭MySQL连接

查询MySQL服务器结束后,应当关闭连接。不过关闭连接不是必需的,因为PHP的垃圾回收机制会处理这个问题。mysql_close()函数关闭可选参数link_id对应的连接。如果没有指定link_id,则认为是最近打开的连接。

mysql_close([link_id ]);

完整实例

新建一个config.php 写mysql配置信息

header('Content-Type:text/html;charset=utf-8');
     
     //常量参数
     define('DB_HOST','localhost');
     define('DB_USER','root');
     define('DB_PWD','yangfan');
     define('DB_NAME','school');
     
     //第一步,连接MYSQL服务器
     $conn = @mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('数据库连接失败,错误信息:'.mysql_error());
     
     //第二步,选择指定的数据库,设置字符集
     mysql_select_db(DB_NAME) or die('数据库错误,错误信息:'.mysql_error());
     mysql_query('SET NAMES UTF8') or die('字符集设置错误'.mysql_error());

新建一个Demo.php 写sql执行 读取显示、释放资源、关闭数据库

require "dirname(__FILE__).config.php";
    //新增数据
    $query = "INSERT INTO grade (name,email,point,regdate) VALUES ('胡心鹏','bigbird@sina.com.cn',67,NOW())";
    @mysql_query($query) or die('新增错误:'.mysql_error());
 
//  //修改数据
//  $query = 'UPDATE grade SET point=87 WHERE id=8';
//  @mysql_query($query) or die('修改错误:'.mysql_error());
 
    //删除数据
//  $query = "DELETE FROM grade WHERE id=8";
//  @mysql_query($query) or die('删除错误:'.mysql_error());
 
    //显示数据
    $query = "SELECT id,name,email,regdate FROM grade";
    $result = mysql_query($query) or die('SQL语句有误:'.mysql_error());
     
    //把结果集转换成的数组赋给$row,如果有数据,就为真
    while (!!$row = mysql_fetch_array($result)) {
        echo $row['id'].'----'.$row['name'].'----'.$row['email'];
        echo '<br />';
    }
 
     
    mysql_close();
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
SQL 关系型数据库 MySQL
go 通过sql操作mysql
go 通过sql操作mysql
11 1
|
5天前
|
关系型数据库 MySQL
MYSQL-多表操作-外键约束
MYSQL-多表操作-外键约束
|
15小时前
|
前端开发 关系型数据库 MySQL
使用 PHP 和 MySQL 实现留言板功能
使用 PHP 和 MySQL 实现留言板功能
6 0
|
1天前
|
关系型数据库 MySQL Go
Go语言介绍以及如何在Go语言中操作MySQL数据库
Go语言介绍以及如何在Go语言中操作MySQL数据库
16 3
|
1天前
|
Java 关系型数据库 流计算
实时计算 Flink版操作报错合集之配置cats进行从MySQL到StarRocks的数据同步任务时遇到报错,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1天前
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错合集之下载了mysql的cdc的demo,在本地调试时,报错:找不到这个包,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1天前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之同步MySQL数据并EP(复杂事件处理)时,编译报错,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1天前
|
弹性计算 监控 Linux
云服务器 ECS产品使用问题之在使用yum安装PHP相关的包时遇到问题,因为系统中找不到php-mysql和php-imap这两个包,该怎么办
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
1天前
|
存储 自然语言处理 关系型数据库
✅生产问题之Emoji表情如何操作存储,MySQL是否支持
MySQL支持存储Emoji表情,需使用UTF8MB4编码。UTF8MB3,MySQL早期的UTF-8实现,不支持部分Unicode字符包括Emoji,已被弃用。推荐使用UTF8MB4,它支持全部Unicode字符。转换时,现有UTF8MB3表需转换为UTF8MB4,列和表都需设置相应字符集。
|
4天前
|
SQL 关系型数据库 MySQL
MySQL数据库——事务操作-begin-commit-rollback
MySQL数据库——事务操作-begin-commit-rollback
8 1