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

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Laravel8 是一个流行的 PHP Web 框架,它提供了许多便捷的功能和工具,可以使 Web 开发变得更加快速和高效。下面是一个 Laravel8 的快速入门指南: 1. 安装 Laravel8:可以通过 Composer 来安装 Laravel8,命令如下: ``` composer create-project --prefer-dist laravel/laravel blog ``` 这个命令会在当前目录下创建一个名为 "blog" 的 Laravel8 项目。 2. 配置数据库:在 Laravel8 中,配置数据库非常简单,只需要在 .env 文件中添加数据库相关的配置即可,例如: ``` DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= ``` 3. 创建控制器:可以通过以下命令来创建一个控制器: ``` php artisan make:controller UserController ``` 这个命令会在 app/Http/Controllers 目录下创建一个名为 UserController 的控制器文件。 4. 创建路由:在 Laravel8 中,可以通过路由来定义 URL 和控制器之间的关系,例如: ``` Route::get('/user', 'UserController@index'); ``` 这个路由定义了当访问 /user URL 时,会调用 UserController 的 index 方法。 5. 创建视图:在 Laravel8 中,可以通过视图来定义页面的 HTML 代码,例如: ``` <!DOCTYPE html> <html> <head> <title>My Blog</title> </head> <body> <h1>Welcome to my blog</h1> </body> </html> ``` 这个视图定义了一个简单的 HTML 页面。 6. 渲染视图:在控制器中,可以通过以下代码来渲染视图: ``` return view('welcome'); ``` 这个代码会渲染名为 "welcome" 的视图文件。 以上就是 Laravel8 的快速入门指南,希望能够帮助你快速上手 Laravel8。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ys52IT

你的鼓励将是我创作的最大动力你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值