php 快速入门(七)

news2024/11/25 12:16:31

一、操作数据库

1.1 操作MySQL的步骤

第一步:登录MySQL服务器
第二步:选择当前数据库
第三步:设置请求数据的字符集
第四步:执行SQL语句

1.2 连接MySQL

函数1:mysql_connect()

  • 功能:连接(登录)到MySQL服务器。
  • 语法:
    $link = mysql_connect($db_host,$db_user,$db_pwd)
    
  • 参数:
    $db_host:代表MySQL服务器的主机名或ip地址,本地是localhost
    $db_user:代表MySQL服务器的用户账号。如:root
    $db_pwd:代表MySQL服务器的用户密码。如:root
  • 返回值:连接成功,返回一个资源类型的标识符。如果连接失败,返回false

案例

<?php
    $db_host = "localhost";
    $db_user = "root";
    $db_pwd = "123";
    $connSql = mysql_connect($db_host,$db_user,$db_pwd);
    if($connSql)
    {
        echo "连接成功";
    }
    else
    {
        echo "连接失败";
        exit();
    }
?>

exit()

功能:输出一个信息,并终止程序运行。
语法:void exit ([string '$status'])

举例:exit("程序运行出错了")

mysql_errot()

功能:输出上一次操作MySQL出错的文本信息。
语法:Strint **mysql_error** ([ resource `$link` ])

参数:$link代表当前的活动连接

案例:如果连接MySQL失败了,提示错误信息

<?php
    $db_host = "localhost";
    $db_user = "tom"
    $db_pwd = "321"
    $connSql=mysql_connect($db_host,$db_user,$db_pwd);
    if ($connSql)
    {
        echo "连接成功";
    } else {
        echo "连接失败<br>".mysql_error();
        exit();
    };
?>

此时连接数据库报错了,给出了错误信息,但是也给出了系统经过信息,如下

如果不想看到这个信息,我们可以修改代码如下:

<?php
    $db_host = "localhost";
    $db_user = "tom"
    $db_pwd = "321"
    // @是用来屏蔽系统错误信息的
    $connSql = @mysql_connect($db_host,$db_user,$db_pwd);
    if ($connSql)
    {
        echo "连接成功";
    } else {
        echo "连接失败<br>".mysql_error();
        exit();
    };
?>

说明:

  • @ 用来屏蔽系统错误信息
  • mysql_error() 这个函数通常是用在测试过程中的,上线之前需要删除

10.3 选择数据库

mysql_slect_db()

  • 功能:选择要操作的数据库
  • 语法
    mysql_select_db ( strint `$database_name` [, resource `$ link_identifier` ] )
  • 参数:
    $database: 代表你要操作的数据库名称。
    [$link]可选,代表当前的活动连接。
  • 返回值:成功选择返回true,选择失败返回false

案例:

<?php
    $db_host = "localhost";
    $db_user = "tom"
    $db_pwd = "321"
    $connSql=mysql_connect($db_host,$db_user,$db_pwd);
    if ($connSql)
    {
        echo "连接成功";
    } else {
        echo "连接失败<br>".mysql_error();
        exit();
    };
    //选择数据库,假设连接的库名为test库
    $db_name = "test";
    if(mysql_select_db($db_name))
    {
        echo "成功选中";
    } else {
        echo "选择数据库失败<br>".mysql_error();
    }
?>

1.4 设置返回的数据字符集

mysql_query("set names utf8")

1.5 执行SQL语句

mysql_query()

  • 功能:执行各种SQL语句。换句话说,就是向MySQL服务器发出请求。
  • 语法:resource $result = mysql_query($sql [$link])
  • 参数:$sql:是各种SQL语句
    增加SQL: $sql = "insert into news(title,content) values('title','content')"
    删除SQL: $sql = "delete from news where id=5"
    更新SQL: $sql = "update news set title = '新title' where id=5"
    查询SQL: $sql = "select * from news";
    
  • 参数:$link:代表当前活动连接,如果省略,就以上一个正常打开的连接为准。
  • 返回值: 
    当执行select、show、describe这些SQL语句时,成功返回结果集(也是一个资源的数据类型),失败返回false.
    当执行delete、update/insert这些SQL语句时,成功返回true,失败返回false

案例:

<?php
    $db_host = "localhost";
    $db_user = "tom"
    $db_pwd = "321"
    $connSql=mysql_connect($db_host,$db_user,$db_pwd);
    if ($connSql)
    {
        echo "连接成功";
    } else {
        echo "连接失败<br>".mysql_error();
        exit();
    };
    //选择数据库,假设连接的库名为test库
    $db_name = "test";
    if(mysql_select_db($db_name))
    {
        echo "成功选中";
    } else {
        echo "选择数据库失败<br>".mysql_error();
        exit();
    }
    //向MySQL服务器发出请求,执行sql语句
    $sql = "select * from students;"
    $res = mysql_query($sql);
    if($res)
    {
        echo $res; //这里仅仅是结果集,不是具体内容
    }
    else
        echo mysql_error();
    }
?>

1.6 从结果集中读取数据

mysql_fetch_row()

  • 功能:从结果集中读取一行数据,并以枚举数组返回,并且读完一行,指针下移。
  • 语法:
    array mysql_fetch_row(resource $result)

  • 参数:$result 代表返回的结果集
  • 返回值:返回一个枚举数组,也就是说这一行数据时存在数组中的,每个字段的下标是从0开始的正整数。

案例:从数据集中读取一行内容,并展示出来

$sql = "select * from students";
$res = mysql_query($sql);
if(!$res)
{
    echo mysql_error();
}
//从结果集中读取出一行数据,作为枚举数组对象返回
//******每次执行只能读取出来一行*****
$resRow = mysql_fetch_row($res);
//这一行是一个数组,因此可以用print_r打印数组中的内容
echo "<pre>";
print_r($resRow);
echo "<pre>"

1.7 统计读取的行数

mysql_num_rows()

  • 功能:从结果集中取出来记录总数,查询以后,找到了多少条记录。
  • 语法:
    int $records = mysql_num_rows($result)
  • 注意:只能从结果集中返回记录总数。
  • 返回值:如果没有找到,返回0
<?php
    $db_host = "localhost";
    $db_user = "tom"
    $db_pwd = "321"
    $connSql=mysql_connect($db_host,$db_user,$db_pwd);
    if ($connSql)
    {
        echo "连接成功";
    } else {
        echo "连接失败<br>".mysql_error();
        exit();
    };
    //选择数据库,假设连接的库名为test库
    $db_name = "test";
    if(mysql_select_db($db_name))
    {
        echo "成功选中";
    } else {
        echo "选择数据库失败<br>".mysql_error();
        exit();
    }
    mysql_query("set numes utf8");
    $resources = mysql_query($SQL);
    $resourcesNum = mysql_num_rows($resources);
    if ($resourcesNum == 0)
    {
        echo "没有找到";
    }
    else
    {
        echo "查询结果数量:".$resourceNum;
    }
?>

1.8 其他的函数

mysql_fetch_array()

  • 功能:从结果集中读取一行数据,并以混合数组返回。
  • 语法:array mysql_fetch_array(resource $result[type])

mysql_fetch_assoc()

  • 功能:从结果集中读取一行数据,并以关联数组(其实就是字符下标)返回。
  • 语法:array mysql_fetch_assoc(resource $result)

二、扩展内容

2.1 urlencode() 函数

        urlencode($str)的作用是对字符串$str进行url编码,方便$str作为一个变量传递给下一页,一般情况下$str有两种:

  • 第一种是数组类型,如果想将数组作为url的一个参数,即必须将数组转化为一个字符串,通常是需要对数据进行json_encode,然后再urlencode即可。
  • 第二种是中文,中文作为url的一个参数有时会出错,所以通过urlencode进行编码比较安全。

2.2 include()

  • 功能:包含另一个文件的代码。将另一个文件的代码插入到当前文件中执行。
  • 语法:include(filename)
  • 举例:include("conn.php");

2.3 require()

  • 功能:包含另一个文件的代码。将另一个文件的代码插入到当前文件中执行。
  • 语法:require(filename)
  • 举例:require("conn.php")

2.4 include和require的区别

  • 这两个语法结构,除了处理错误信息不一样以外,其他的功能都一样。
  • include 当遇到错误时,程序将继续向下运行,并返回警告信息。
  • require 当遇到错误时,程序将中止运行,并返回致命错误信息。

因此,可以将连接数据库部分代码写作单独文件connMysql.php

<?php
    header("content-type:text/html;charset=utf-8");
    $db_user = "root";
    $db_pwd = "123";
    $db_host = "localhost";
    $db_name = "hellodb";
    $SQL = "select stuid,name,age from students";
    $link = @mysql_connect($db_host,$db_user,$db_pwd);
    if(!$link){
        echo "连接数据库失败";
        exit();
    } 
    if(!mysql_select_db($db_name)){
        echo "选择数据库失败";
        exit();
    }
    mysql_query("set names utf8");
?>

然后将主程序中的相同代码删除,并调用这部分代码

<?php
    require("connMysql.php");
    $resources = mysql_query($SQL);
    $resourcesNum = mysql_num_rows($resources);
    if ($resourcesNum == 0)
    {
        echo "没有找到";
    }
    else
    {
        echo "查询结果数量:".$resourceNum;
    }
?>

2.5 header()函数

  • 功能:将数据传往浏览器是,用什么杨的字符集显示。或者,实现网页跳转功能。
  • 语法:void header(strint $strint)
  • 举例1:设置网页中汉字字符集:header("content-type:text/html;charset=utf-8");这个语句通常放在网页最开始部分
  • 举例2:网页跳转功能:header("location:test.php?id=5");     跳转之后,后面的代码将不再执行

补充:关于页面跳转

方法一:直接跳转

header("Location:index.html");

方法二:延时跳转

header("refresh:5;url=http://www.php001.com/index.html")

2.6 md5加密

  • 功能:对字符进行加密,返回32位16进制的散列值
  • 语法:md5(strint)
  • 说明:md5是单向加密。
    <?php
        $str = "Hello World";
        $hash = md5($str);
        echo $hash;
    ?>

扩展:

  • 单向加密:只能加密,不能解密,例如md5,sha512,sha256,定长输出,蝴蝶效应
  • 对称加密:可以加密,也可以解密,加密和解密用的是同一个秘钥。
  • 非对称加密:可以加密,也可以解密,加密用的是公钥,解密用的是私钥。

2.7 字符串替换

2.7.1 preg_replace() 函数

preg_replace() 函数是一个强大的正则表达式替换函数,可以快速准确地将满足某种模式的字符串替换为指定的字符串。

在移除空格时,可以利用 preg_replace() 函数来匹配空格并替换为空白字符

mixed preg_replace ( mixed $pattern ,mixed $replacement,mixed $subject [, int $limit = -1 [,int &$count ]] )

$pattern 表示要匹配的正则表达式模式

$replacement 表示替换成的字符串

$subject 表示要处理的字符串

$limit 表示最多替换的次数

$count 是一个引用变量,表示实际替换的次数

案例

$str = 'hello world';
$pattern = '/\s+/'; //匹配一个或多个空格
$replacement = '';
echo preg_replace($pattern,$replacement,$str);   //输出 'helloworld'
2.7.2 str_replace() 函数

str_replace() 函数用于搜索并替换字符串中的另一个字符串。我们可以使用该函数来搜索空格并替换为空白字符

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ])

$search 表示要搜索的字符串

$replace 表示要替换成的字符串

$subject 表示要处理的字符串

$count 是一个引用变量,表示实际替换的次数

案例:

$str = 'hello world';
$search = ' ';
$replace = ' ';
echo str_replace($search,$replace,$str);   //输出: 'helloworld'

2.8 页面直接跳转

实现页面直接跳转有两种方法

方法一:在php中,执行js代码,实现跳转

echo '<script> location.href="http://www.zx.com/2.php" </script>';

方法二:在php中,直接执行header方法,实现跳转

header("location:http://www.zx.com/2.php");

2.9 页面延时跳转

方法一:在php中,执行js代码,实现跳转

<script language="JavaScript">
    function myrefresh(){
        location.href="<?php echo http://www.baidu.com ?>";
    }
    setTimeout('myrefresh()',3000);   //指定3秒跳转
</script>

方法二:在php中,直接执行header方法,实现跳转

<?php
    header("refresh:5;url=http://www.xxxx.com");
    print('正在加载,请稍等...<br>五秒后自动跳转');
?>

三、服务端接受数据问题

在php中,服务端是通过$_SERVER 来接收客户端传递的数据的

  1. $_SERVER['SERVER_NAME']:当前运行脚本所在服务器主机的名称。
  2. $_SERVER['SERVER_PROTOCL']:请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。
  3. $_SERVER['REQUEST_METHOD']:访问页面时的请求方法。例如:"GET"、"HEAD"、"POST"、"PUT"。
  4. $_SERVER['QUERY_STRING']:查询(query)的字符串
  5. $_SERVER['DOCUMENT_ROOT']:当前运行脚本所在的文档根目录。在服务器配置文件中定义。
  6. $_SERVER['HTTP_ACCERT']:当前请求的Accept:头部的内容。
  7. $_SERVER['HTTP_CONNECTION']:当前请求的 Connection:头部的内容。例如:“Keep-Alive”。
  8. $_SERVER['HTTP_HOST']:当前请求的HOST:头部内容。
  9. $_SERVER['HTTP_REFERERE']:连接当前页面的前一页面的URL地址。
  10. $_SERVER['HTTP_USER_AGENT']:当前请求的User_Agent:头部内容。
  11. $_SERVER['HTTPS']:如果通过https访问,则被设为一个非空的值(on)否则返回off。
  12. $_SERVER['REMOTE_ADDR']:正在浏览当前页面用户的IP地址。
  13. $_SERVER['REMOTE_HOST']:正在浏览当前页面用户的主机名
  14. $_SERVER['REMOTE_POSRT']:用户连接到服务器时所使用的端口
  15. $_SERVER['SERVER_PORT']:服务器所使用的端口
  16. $_SERVER['HTTP_X_FORWARDED_FOR']:通过代理服务器取得客户端的真实IP地址
  17. $_SERVER['HTTP_VIA']:代理服务器IP
  18. $_SERVER['HTTP_CLIENT_IP']:客户端IP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1552868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Netty对Channel事件的处理以及空轮询Bug的解决

继续上一篇Netty文章&#xff0c;这篇文章主要分析Netty对Channel事件的处理以及空轮询Bug的解决 当Netty中采用循环处理事件和提交的任务时 由于此时我在客户端建立连接&#xff0c;此时服务端没有提交任何任务 此时select方法让Selector进入无休止的阻塞等待 此时selectCnt进…

【计算机网络】第 11、12 问:流量控制和可靠传输机制有哪些?

目录 正文流量控制的基本方法停止-等待流量控制基本原理滑动窗口流量控制基本原理 可靠传输机制1. 停止-等待协议2. 后退 N 帧协议&#xff08;GBN&#xff09;3. 选择重传协议&#xff08;SR&#xff09; 正文 流量控制涉及对链路上的帧的发送速率的控制&#xff0c;以使接收…

zabbix自定义监控进程、日志文件

zabbix自定义监控进程、日志文件 zabbix自定义监控进程 在客户端安装httpd服务 [rootnode1 ~]# yum -y install httpd [rootnode1 ~]# systemctl start httpd [rootnode1 ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port Pr…

【Redis】Redis 内存管理,Redis事务,bigkey和hotkey

目录 Redis 内存管理 缓存数据设置过期时间&#xff1f; Redis 是如何判断数据是否过期的呢&#xff1f; 过期删除策略 内存淘汰机制 主从模式下对过期键的处理&#xff1f; LRU和LFU的区别 Redis事务 定义和原理 Redis 事务的注意点&#xff1f; 为什么不支持回滚&a…

shell脚本发布docker-nginx vue2 项目示例

docker、git、node.js安装略过。 使git pull或者git push不需要输入密码操作方法 nginx安装在docker容器里面&#xff0c;参见&#xff1a;https://blog.csdn.net/HSJ0170/article/details/128631155 姊妹篇&#xff08;宿主机nginx&#xff0c;非docker-nginx&#xff09;&am…

React 应用实现监控可观测性最佳实践

前言 React 是一个用于构建用户界面的 JavaScript 框架。它采用了虚拟 DOM 和 JSX&#xff0c;提供了一种声明式的、组件化的编程模型&#xff0c;以便更高效地构建用户界面。无论是简单还是复杂的界面&#xff0c;React 都可以胜任。 YApi 是使用 React 编写的高效、易用、功…

StarRocks实战——多点大数据数仓构建

目录 前言 一、背景介绍 二、原有架构的痛点 2.1 技术成本 2.2 开发成本 2.2.1 离线 T1 更新的分析场景 2.2.2 实时更新分析场景 2.2.3 固定维度分析场景 2.2.4 运维成本 三、选择StarRocks的原因 3.1 引擎收敛 3.2 “大宽表”模型替换 3.3 简化Lambda架构 3.4 模…

“预防儿童烧烫伤”科普安全课堂走进嘉鱼县第一小学

为提高嘉鱼县儿童烧烫伤安全意识、隐患识别能力以及突发应急处置能力&#xff0c;3月26日下午&#xff0c;在中国社会福利基金会烧烫伤关爱公益基金、嘉鱼县妇女联合会、嘉鱼县教育局的支持下&#xff0c;嘉鱼县蒲公英社会工作服务中心走进嘉鱼县第一小学开展预防儿童烧烫伤科普…

图论之路径条数专题

一直忙着金工实习蓝桥杯&#xff0c;好久没有看图论了&#xff0c;今天就小试几题享受下被虐的快感。 1.最短路拓扑 首先来几个结论&#xff1a; 1.最短路图没有环&#xff08;可以用反证法证明&#xff09; 2.dis[u]edge[u,v]dis[v]&#xff0c;那么u,v端点的边一定在最短路…

【笔记】RDD算子操作(Spark基础知识)

持续更新中&#xff01;&#xff01;&#xff01; 目录 一、RDD的创建 1.从本地创建 &#xff08;1&#xff09;本地文件 &#xff08;2&#xff09;hdfs文件&#xff08;先提前创建目录并上传文件&#xff09; 2.从集合创建&#xff08;通过并行集合&#xff08;列表&am…

C#手术麻醉信息系统全套商业源码,自主版权,支持二次开发 医院手麻系统源码

手术麻醉信息系统是HIS产品的中的一个组成部分&#xff0c;主要应用于医院的麻醉科&#xff0c;属于电子病历类产品。医院麻醉监护的功能覆盖整个手术与麻醉的全过程&#xff0c;包括手术申请与排班、审批、安排、术前、术中和术后的信息管理提供支持。 手术麻醉信息系统可与EM…

MTK8781安卓核心板_MT8781(Helio G99)核心板性能参数

MT8781安卓核心板搭载了八核CPU&#xff0c;其中包括两个主频高达2.2GHz的高性能Arm Cortex-A76处理器。这一处理器采用了台积电6纳米级芯片生产工艺&#xff0c;以及先进的3D图形功能的高性能Arm Mali G57级GPU。通过超快LPDDR4X内存和UFS 2.2存储供电&#xff0c;不仅提高了游…

springdata框架对es集成

什么是spring data框架 Spring Data是一个用于简化数据库、非关系型数据库、索引库访问&#xff0c;并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷&#xff0c;并支持 map-reduce框架和云计算数据服务。Spring Data可以极大的简化JPA(Elasticsearch…)的…

【TB作品】MSP430G2553,超声波倒车雷达PCB,单片机,超声波SR04,键盘,oled,

题目 硬件&#xff1a;MSP430G2553、 SR04超声波传感器 、3*4键盘、 无源蜂鸣器、oled显示屏 软件 1 、实时显示测量得到的距离 2、按键设置一个报警门限数值&#xff0c;直接输入数值后确认 3、低于报警门限数值就开始报警&#xff0c;而且距离越近蜂鸣器的鸣叫频率越高 程序…

电脑突然死机怎么办?

死机是电脑常见的故障问题&#xff0c;尤其是对于老式电脑来说&#xff0c;一言不合电脑画面就静止了&#xff0c;最后只能强制关机重启。那么你一定想知道是什么原因造成的吧&#xff0c;一般散热不良最容易让电脑死机&#xff0c;还有系统故障&#xff0c;比如不小心误删了系…

MySQL count(*/column)查询优化

count()是SQL中一个常用的聚合函数&#xff0c;其被用来统计记录的总数&#xff0c;下面通过几个示例来说明此类查询的注意事项及应用技巧。 文章目录 一、count()的含义二、count()的应用技巧2.1 同时统计多列2.2 利用执行计划 一、count()的含义 count()用于统计符合条件的记…

Yarn简介及Windows安装与使用指南

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

STM32使用USART发送数据包指令点亮板载LED灯

电路连接&#xff1a; 连接显示屏模块&#xff0c;显示屏的SCL在B10&#xff0c;SDA在B11。 程序目的&#xff1a; 发送LED_ON指令打开板载LED灯&#xff0c;发送LED_OFF关闭板载LED灯&#xff0c;与上一个博客不同&#xff0c;这个实际上是实现串口收发文本数据包。 …

flink on yarn-per job源码解析、flink on k8s介绍

Flink 架构概览–JobManager JobManager的功能主要有: 将 JobGraph 转换成 Execution Graph,最终将 Execution Graph 拿来运行Scheduler 组件负责 Task 的调度Checkpoint Coordinator 组件负责协调整个任务的 Checkpoint,包括 Checkpoint 的开始和完成通过 Actor System 与 …

【MySQL】6.MySQL主从复制和读写分离

主从复制 主从复制与读写分离 通常数据库的读/写都在同一个数据库服务器中进行&#xff1b; 但这样在安全性、高可用性和高并发等各个方面无法满足生产环境的实际需求&#xff1b; 因此&#xff0c;通过主从复制的方式同步数据&#xff0c;再通过读写分离提升数据库的并发负载…