美文网首页
PHP和数据库基础知识

PHP和数据库基础知识

作者: 巴山哥 | 来源:发表于2018-10-30 15:56 被阅读0次

    PHP 大小写敏感

    在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。不过在 PHP 中,所有变量都对大小写敏感

    在下面的例子中,所有这三条 echo 语句都是合法的(等价):

    在下面的例子中,只有第一条语句会显示 $color 变量的值(这是因为 $color、$COLOR 以及 $coLOR 被视作三个不同的变量):

    PHP 变量规则:

    变量以 $ 符号开头,其后是变量的名称

    变量名称必须以字母或下划线开头,不能以数字开头

    变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)

    变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

    PHP 是一门类型松散的语言

    PHP 没有创建变量的命令,变量会在首次为其赋值时被创建,PHP 根据它的值,自动把变量转换为正确的数据类型。

    PHP static 关键词

    通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。要实现这一点需要,请在首次声明变量时使用 static 关键词:

    运行结果:0,1,2,3,4

    每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。

    注释:该变量仍然是函数的局部变量。

    PHP 数组

    在 PHP 中,有三种类型的数组:

    数值数组 - 带有数字 ID 键的数组

    关联数组 - 带有指定的键的数组,每个键关联一个值

    多维数组 - 包含一个或多个数组的数组

    PHP 数值数组

    这里有两种创建数值数组的方法:

    自动分配 ID 键(ID 键总是从 0 开始):   

    $cars=array("Volvo","BMW","Toyota");

    人工分配 ID 键:   

    $cars[0]="Volvo";

    $cars[1]="BMW";

    $cars[2]="Toyota";

    PHP 关联数组

    关联数组是使用您分配给数组的指定键的数组。

    这里有两种创建关联数组的方法:   

    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

    或者:   

    $age['Peter']="35";

    $age['Ben']="37";

    $age['Joe']="43";

    PHP count() 函数

    遍历关联数组

    遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:

    foreach 语法结构提供了遍历数组的简单方式,有两种语法:

    第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针自动向前移一步(因此下一次循环中将会得到下一个单元)。

    第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。

    PHP exit() 函数

    exit() 函数输出一条消息,并退出当前脚本。

    该函数是 die() 函数的别名。

    php中使用pdo访问sqlite3

    1.PDO简介 

    PDO是 PHP Date Object (PHP数据对象)的简称,它是与 PHP5.1版本一起发行的,在 PHP 6 中默认使用PDO连接数据库,所有非 PDO扩展将会在 PHP 6中被移除,该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,从而解决数据库连接不统一的问题。

    在 Windows 环境下,如果要想其支持某个具体的数据库,那么还要记载对应的数据库选项,比如,要支持 sqlite 数据库,则还需要加载“extension=php_pdo_sqlite.dll”选项。

    从php5 >=5.3.0 的时候开始默认支持sqlite3,可用phpinfo()进行检查确认

    2.PDO构造函数连接数据库

    在PDO中,要建立数据库的连接需要实例化 PDO 的构造函数,PDO构造函数的语法格式如下:

    _construct(string $dsn[,string $username[,string $password[,array $driver_options]]])

    其中:

    dsn:数据源名称,包括主机名端口号和数据库名称。

    username:连接数据库的用户名。

    password:连接数据库的密码。

    driver_options:连接数据库的其它选项。

    用实例讲解,通过PDO连接 MySQL 数据库,具体代码如下:

    3.DSN详解

    DSN是Data Source Name(数据源名称)的首字母缩写。DSN提供连接数据库需要的信息。PDO的DSN包括3部分:PDO驱动名称(如:mysql、sqlite或者pgsql)、冒号和驱动特定的语法。每种数据库都有其特定的驱动语法。

    在使用不同的数据库时,必须明确数据库服务器是完全独立与 PHP 的,是实体。但是在实际的情况可能是数据库服务器与 Web服务器不在同一台计算上,此时需要通过PDO连接数据库时,就修改DSN中的主机名称。

    由于数据库服务器只是特定的端口上监听连接请求。每种数据库服务器具有一个默认的端口号(MySQL 是3306),但是数据库管理员可以对端口号进行修改,因此有可能 PHP找不到数据库的端口号,此时就可以在 DSN中包含端口号。比如:

    $dsn="mysql:host=127.0.0.1;port=3310;dbname=admin";

    由于一个数据库中可能同时拥有多个数据库,所以通过DSN连接数据库时,通常都包括数据库名称,这样可以

    确保连接的是用户想要的数据库,而不是其他的数据库了!

    4.PDO中执行SQL语句的三种方法

    可以使用三种方式来执行SQL语句,分别是 exec()方法,query方法,以及预处理语句prepare()和execute()方法~

    4.1exec()方法

    返回执行SQL 语句后受影响的行数,其语法格式如下:

    int PDO::exec(string statement)

    参数 satatement 是要执行的SQL语句,该方法返回执行SQL 语句时受影响的行数,通常用于 INSERT,DELETE和UPDATE语句中。用具体代码讲解如下:

    4.2query()方法

    返回执行查询后的结果集,该函数的语法格式如下:

    PDOStatement PDO::query(string statement)

    参数 satatement 是要执行的 SQL语句,它返回的是一个PODStatement对象!具体请看下面示例代码:

    注意:

    a、query和exec都可以执行所有的sql语句,只是返回值不同而已。

    b、query可以实现所有exec的功能。

    c、当把select语句应用到 exec 时,总是返回 0

    d、如果要看查询的具体结果,可以通过foreach语句完成循环输出

    4.3预处理语句:prepare()语句和execute()语句

    预处理语句包括prepare()和execute()两种方法。首先,通过prepare()方法做查询准备工作,然后通过execute()方法执行查询,并且还可以通过bindParam()方法来绑定参数给execute()方法,语法如下:

    PDOStatement PDO::prepare(string statement[,array driver_options])

    bool PDOStatement::execute([array input_parameters])

    4.4PDO中获取结果集之fetch()方法详解

    fetch()方法获取结果集中的下一行数据,该函数的具体语法格式如下:

    mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )

    参数 fetch_style:控制结果集的返回方式,其中可选择的值如下表:

    参数 cursor_orientation:PDOStatement对象的一个滚动游标,可以获取指定的一行。

    参数 cursor_offset:游标的偏移量。

    下面实例通过 fetch()方法获取结果集中下一行的数据,用 while 语句完成数据库中数据的循环输出,步骤如下:

    学习参考PHP中文网

    相关文章

      网友评论

          本文标题:PHP和数据库基础知识

          本文链接:https://www.haomeiwen.com/subject/mjiwzftx.html