php 快速入门(七)

一、操作数据库

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTTP

HTTP 概念&#xff1a;HyperTextTransferProtocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 HTTP协议特点&#xff1a; 1.基于TCP协议&#xff1a;面向连接&#xff0c;安全 2.基于请求-响应模型的&#xff1a;一次请求对应一次响应 …

pipeline script for SCM 构建go项目

pipeline script 和 pipeline script for SCM 推荐使用第二种 首先需要再项目的根目录下新建Jenkinsfile 文件 pipeline for SCM 拉取github 代码 自动生成Jenkinsfile 的语法 生成jenkinsfile 的拉取脚本 项目中编写Jenkinsfile文件 pipeline {agent anystages …

如何评估户外LED显示屏的质量标准

随着数字媒体的不断进步&#xff0c;户外LED显示屏已经成为现代城市不可或缺的一部分&#xff0c;它们以鲜明的视觉冲击力和广泛的应用范围&#xff0c;成为了广告和公共信息传播的重要工具。然而&#xff0c;并非所有的户外LED显示屏都能满足高标准的户外使用要求。为了确保投…

MoonBit MeetUp回顾——张正、宗喆:编程语言在云原生与区块链领域的技术探索

宗喆和张正分别给我们带了 KCL 相关的最新进展&#xff0c;由蚂蚁集团开发的 Rust 编写的开源 DSL&#xff0c;目标是优化云原生策略配置和用户体验。它通过引入动态配置管理、配置校验和基础设施抽象等核心概念&#xff0c;解决开发者认知负担、配置膨胀和标准化工具缺乏的问题…

国内外主要气象卫星介绍

NOAA AVHRR介绍 美国NOAA极轨卫星从1970年12月第一颗发射以来&#xff0c;近40年连续发射了18颗&#xff0c;最新的NOAA-19也将在2009年发射升空。NOAA卫星共经历了5代&#xff0c;目前使用较多的为第五代NOAA卫星&#xff0c;包括NOAA-15—NOAA-18&#xff1b;作为备用的第四…

【STM32CubeMX(1)】开发环境搭建

1、安装STM32CubeMX 安装前言&#xff1a;软件是免费的&#xff0c;网上安装教程也是很丰富&#xff0c;我就不造轮子了。 1.1 准备java-jdk环境 参考&#xff1a;Java环境配置|菜鸟教程 1.2 下载STM32CubeMX 获取安装包&#xff1a;STM32CubeMX - STM32Cube initializati…

verilog 从入门到看得懂---verilog 的基本语法各种语句

本篇文章主要介绍verilog里面常用的语句&#xff0c; 包括条件语句、循环语句块语句和生成语句。出了块语句和生成语句&#xff0c;其他的基本和c语言或者m语言一致。 1&#xff0c;if 语句&#xff0c;在需要判断逻辑的时候可以使用if语句&#xff0c;如 从输入a&#xff0c;…

SpringCloud实用篇(一)

1.SpringCloud SpringCloud是目前国内使用最广泛的微服务框架。官网地址&#xff1a;Spring Cloud SpringCloud集成了各种微服务功能组件&#xff0c;并基于SpringBoot实现了这些组件的自动装配&#xff0c;从而提供了良好的开箱即用体验&#xff1a; SpringCloud与SpringBoo…

Python中的排序算法:归并排序,选择排序和快速排序详解

排序算法是计算机科学中的一个基础且重要的概念。它用于将一组数据&#xff08;如数字、字符串等&#xff09;按照某种顺序&#xff08;升序或降序&#xff09;重新排列。在Python中&#xff0c;我们有许多内置的函数和库可以方便地实现排序&#xff0c;但理解排序算法的基本思…

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

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

企业员工培训考试系统开发方案

一、引言 在当今知识经济时代&#xff0c;企业对员工的综合素质和专业技能有着越来越高的要求。为了适应这一趋势&#xff0c;构建一个全面而高效的企业员工培训考试系统变得尤为重要。该系统旨在通过提供多样化的培训课程和全面的考核机制&#xff0c;促进员工持续学习和能力…

24/03/28总结

抽象类&#xff1a; 将共性的方法抽取到父类之后。由于每一个子类执行的内容是不一样&#xff0c;所以&#xff0c;在父类中不能确定具体的方法体。该方法就可以定义为抽象方法。 而为什么不直接在子类中定义方法&#xff1a;项目的完成不是一个人&#xff0c;如果有时忘记写方…

【教学类-40-09】A4骰子纸模制作9.0(3.47CM嵌套骰子 一条8格便于对折,表格相连 一页3个 油墨打印A4铅画纸)

作品展示 背景需求&#xff1a; 骰子调整到第8版&#xff0c;把骰子图案作成一长条&#xff0c;便于切割裁剪。 【教学类-40-08】A4骰子纸模制作8.0&#xff08;2.97CM嵌套骰子表格相连 一页7个 油墨打印A4铅画纸&#xff09;-CSDN博客文章浏览阅读929次&#xff0c;点赞20次…

幻兽帕鲁服务器价格表_阿里云/腾讯云/京东云/华为云报价大全

2024年全网最全的幻兽帕鲁服务器租用价格表&#xff0c;阿里云幻兽帕鲁游戏服务器26元1个月、腾讯云32元一个月、京东云26元一个月、华为云24元1个月&#xff0c;阿腾云atengyun.com整理最新幻兽帕鲁专用4核16G、8核16G、8核32G游戏服务器租用价格表大全&#xff1a; 阿里云幻…

土壤有机质空间分布数据

土壤有机质&#xff08;soil organic matter&#xff09;是土壤中含碳有机化合物的总称&#xff0c;包括土壤固有的和外部加入的所有动植物残体及其分解产物和合成产物。主要来源于动植物及微生物残体&#xff0c;可分为腐殖质和非腐殖物质。一般占土壤固相总重的10%以下&#…

推荐:便宜幻兽帕鲁Palworld联机游戏服务器优惠价格表

2024年全网最全的幻兽帕鲁服务器租用价格表&#xff0c;阿里云幻兽帕鲁游戏服务器26元1个月、腾讯云32元一个月、京东云26元一个月、华为云24元1个月&#xff0c;阿腾云atengyun.com整理最新幻兽帕鲁专用4核16G、8核16G、8核32G游戏服务器租用价格表大全&#xff1a; 阿里云幻…

思维升级之路:观察思维深层,解锁认知新境界

目录 一、观察我们的思维习惯 二、人类有哪些思维方法 三、为什么要多使用归纳推理而不是演绎推理 四、转变思维的关键 - 觉察 怎么提升自身的认知水平&#xff1f;这篇文章里&#xff0c;作者尝试对思维模式这件事做出探讨&#xff0c;一起来看看&#xff0c;或许可以帮你…

2023年蓝桥杯省赛——矩形面积总和

目录 题目链接&#xff1a; 1.矩形总面积 - 蓝桥云课 (lanqiao.cn) 思路 暴力 数学杯思路 数学逻辑 难点之重合区域 代码实现 总结 题目链接&#xff1a; 1.矩形总面积 - 蓝桥云课 (lanqiao.cn) 思路 暴力 开幕雷击&#xff0c;我直接开始暴力&#xff0c;但是我暴力…

Java学习之方法

目录 方法 方法声明格式&#xff1a; 调用方式&#xff1a; 详细说明 示例 --方法的声明及调用 语句块 练习 方法的重载(overload) 构成条件 示例 --方法重载 递归结构 缺陷 方法 方法(method)&#xff1a;一段用于完成特定功能的代码片段&#xff0c;类似于其他语…