PHP基础教程第三章
- 格式:doc
- 大小:687.50 KB
- 文档页数:24
PHP学习记录3.运算符和表达式 (3)3.1.运算符 (3)3.1.1.数学运算符 (3)3.1.2.字符运算符 (4)3.1.3.比较运算符 (5)3.1.4.赋值运算符 (6)3.1.5.逻辑运算符 (6)3.1.6.递增递减运算符 (7)3.1.7.三目运算符 (8)3.1.8.运算符的优先级 (8)3.2.表达式 (9)3.2.1.基本表达式形式 (9)3.2.2.表达式的值 (9)3.2.3.比较表达式 (9)3.2.4.三目表达式 (9)3.运算符和表达式3.1.运算符3.1.1.数学运算符例子名称结果-$a取反$a的负值。
$a+$b加法$a和$b的和。
$a-$b减法$a和$b的差。
$a*$b乘法$a和$b的积。
$a/$b除法$a除以$b的商。
$a%$b取模$a除以$b的余数。
注意:除法运算总是返回浮点数,但是在两个数都是整数或字符串转换成的整数,并且运算结果刚好被整除,此时返回一个整数。
取模运算的操作数在运算之前都会转换成整数,出去小数部分,符号和被除数的正负相同。
如$a%$b的结果与$a的结果相同。
例子:<?php$a=8;$b=2;$c=3;echo"\$a=".$a;echo"<br>";echo"\$b=".$b;echo"<br>";echo"\$c=".$c;echo"<br>";echo"\$a+\$b=".($a+$b);echo"<br>";echo"\$a-\$b=".($a-$b);echo"<br>";echo"\$a*\$b=".($a*$b);echo"<br>";echo"\$a/\$b=".($a/$b);echo"<br>";echo"\$a%\$b=".($a%$b);echo"<br>";echo"\$a/\$c=".($a/$c);echo"<br>";echo"\$a%\$c=".($a%$c);?>输出结果:$a=8$b=2$c=3$a+$b=10$a-$b=6$a*$b=16$a/$b=4$a%$b=0$a/$c=2.6666666666667$a%$c=23.1.2.字符运算符字符运算符只有一个“.”(点号),对字符串进行连接操作,可以实现字符串的连接,也可以实现对字符串的连接赋值。
第三章访问MySQL数据库第一节什么是MySQL?MySQL是一种数据库。
数据库定义了存储信息的结构。
在数据库中,存在着一些表。
类似HTML表格,数据库表含有行、列以及单元。
在分类存储信息时,数据库非常有用。
一个公司的数据库可能拥有这些表:"Employees","Products","Customers"以及"Orders"。
MySQL的一点很棒的特性是,可以对它进行缩减,来支持嵌入的数据库应用程序。
也许正因如此,许多人认为MySQL 仅仅能处理中小型的系统。
事实上,对于那些支持巨大数据和访问量的网站,MySQL是事实上的标准数据库(比如Friendster, Yahoo, Google)。
这个地址提供了使用MySQL的公司的概览:/customers/。
第二节MySQL的的主要特性o 使用C和C++编写o 用众多不同的编译器进行了测试o 能够工作在众多不同的平台上。
o 使用GNU Automake、Autoconf和Libtool进行移植。
o 提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。
o 采用核心线程的完全多线程如果有多个CPU,它能方便地使用这些CPU。
o 提供了事务性和非事务性存储引擎。
o 使用了极快的“B树”磁盘表(MyISAM)和索引压缩。
o 添加另一个存储引擎相对简单。
如果打算为内部数据库添加一个SQL接口,该特性十分有用。
o 极快的基于线程的内存分配系统。
o 通过使用优化的“单扫描多连接”,能实现极快的连接。
o 存储器中的哈希表用作临时表。
o SQL函数是使用高度优化的类库实现的,运行很快。
通常,在完成查询初始化后,不存在存储器分配。
o 采用Purify(商业内存溢出检测器)以及GPL工具Valgrind (/~sewardj/)测试了MySQL代码。
第三章访问MySQL数据库第一节什么是MySQL?MySQL是一种数据库。
数据库定义了存储信息的结构。
在数据库中,存在着一些表。
类似HTML表格,数据库表含有行、列以及单元。
在分类存储信息时,数据库非常有用。
一个公司的数据库可能拥有这些表:"Employees","Products","Customers"以及"Orders"。
MySQL的一点很棒的特性是,可以对它进行缩减,来支持嵌入的数据库应用程序。
也许正因如此,许多人认为MySQL 仅仅能处理中小型的系统。
事实上,对于那些支持巨大数据和访问量的网站,MySQL是事实上的标准数据库(比如Friendster, Yahoo, Google)。
这个地址提供了使用MySQL的公司的概览:/customers/。
第二节MySQL的的主要特性o 使用C和C++编写o 用众多不同的编译器进行了测试o 能够工作在众多不同的平台上。
o 使用GNU Automake、Autoconf和Libtool进行移植。
o 提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。
o 采用核心线程的完全多线程如果有多个CPU,它能方便地使用这些CPU。
o 提供了事务性和非事务性存储引擎。
o 使用了极快的“B树”磁盘表(MyISAM)和索引压缩。
o 添加另一个存储引擎相对简单。
如果打算为内部数据库添加一个SQL接口,该特性十分有用。
o 极快的基于线程的内存分配系统。
o 通过使用优化的“单扫描多连接”,能实现极快的连接。
o 存储器中的哈希表用作临时表。
o SQL函数是使用高度优化的类库实现的,运行很快。
通常,在完成查询初始化后,不存在存储器分配。
o 采用Purify(商业内存溢出检测器)以及GPL工具Valgrind (/~sewardj/)测试了MySQL代码。
o 服务器可作为单独程序运行在客户端/服务器联网环境下。
它也可作为库提供,可嵌入(链接)到独立的应用程序中。
这类应用程序可单独使用,也能在网络环境下使用。
第三节MySQL的安装安装MySQL的步骤如下:请注意按图中所示,有些选项和默认是不一样的。
同时,如果您是重新安装MySQL的话,要注意先备份好MySQL目录中的data目录,这个目录是所有用户的数据目录,非常重要,不可大意。
重装时,备份好数据后,先卸载掉旧的MySQL,并删除原MySQL安装目录。
请注意上图中选择Custom选项,这样才能修改安装目录。
请注意为了数据安全,不要把mysql安装在系统盘,如C:盘。
点击Next后,就开始配置MySQL数据库了。
请注意上图中的设置,把mysql的同时连接数改为了1000.请注意上图中,MySQL的服务名称选为"MySQL",不要使用其它符号。
上图中所填密码即是MYSQL的管理员Root的密码。
至此MySQL安装成功。
第四节使用SQLYog管理MySQL数据库SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。
使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。
SQLyog相比其它类似的MySQL数据库管理工具其有如下特点:1、基于C++和MySQLAPI编程;2、方便快捷的数据库同步与数据库结构同步工具;3、易用的数据库、数据表备份与还原功能;4、支持导入与导出XML、HTML、CSV等多种格式的数据;5、直接运行批量SQL脚本文件,速度极快;6.新版本更是增加了强大的数据迁移组件;此汉化基于企业零售版,拥有免费版和专业版所没有的专业组件(如:数据迁移、数据同步、通知服务等),是MySQLDBA的必备工具。
下面我们如何使用SQLyog来连接并管理数据库。
第五节PHP的MySQL函数PHP:指示支持该函数的最早的PHP 版本。
函数描述PHPmysql_affected_rows() 取得前一次MySQL 操作所影响的记录行数。
3 mysql_change_user() 不赞成。
改变活动连接中登录的用户 3 mysql_client_encoding() 返回当前连接的字符集的名称 4 mysql_close() 关闭非持久的MySQL 连接。
3 mysql_connect() 打开非持久的MySQL 连接。
3mysql_create_db() 不赞成。
新建MySQL 数据库。
使用mysql_query()代替。
3 mysql_data_seek() 移动记录指针。
3 mysql_db_name() 从对mysql_list_dbs() 的调用返回数据库名称。
3 mysql_db_query() 不赞成。
发送一条MySQL 查询。
使用mysql_select_db() 和mysql_query() 代替。
3mysql_drop_db() 不赞成。
丢弃(删除)一个MySQL 数据库。
使用mysql_query() 代替。
3mysql_errno() 返回上一个MySQL 操作中的错误信息的数字编码。
3mysql_error() 返回上一个MySQL 操作产生的文本错误信息。
34 mysql_escape_string() 不赞成。
转义一个字符串用于mysql_query。
使用mysql_real_escape_string() 代替。
3 mysql_fetch_array() 从结果集中取得一行作为关联数组,或数字数组,或二者兼有。
mysql_fetch_assoc() 从结果集中取得一行作为关联数组。
4 mysql_fetch_field() 从结果集中取得列信息并作为对象返回。
3 mysql_fetch_lengths() 取得结果集中每个字段的内容的长度。
3 mysql_fetch_object() 从结果集中取得一行作为对象。
3 mysql_fetch_row() 从结果集中取得一行作为数字数组。
3 mysql_field_flags() 从结果中取得和指定字段关联的标志。
3 mysql_field_len() 返回指定字段的长度。
3 mysql_field_name() 取得结果中指定字段的字段名。
3 mysql_field_seek() 将结果集中的指针设定为指定的字段偏移量。
3 mysql_field_table() 取得指定字段所在的表名。
3 mysql_field_type() 取得结果集中指定字段的类型。
3 mysql_free_result() 释放结果内存。
3 mysql_get_client_info() 取得MySQL 客户端信息。
4 mysql_get_host_info() 取得MySQL 主机信息。
4 mysql_get_proto_info() 取得MySQL 协议信息。
4 mysql_get_server_info() 取得MySQL 服务器信息。
4 mysql_info() 取得最近一条查询的信息。
4 mysql_insert_id() 取得上一步INSERT 操作产生的ID。
3 mysql_list_dbs() 列出MySQL 服务器中所有的数据库。
33 mysql_list_fields() 不赞成。
列出MySQL 结果中的字段。
使用mysql_query() 代替。
mysql_list_processes() 列出MySQL 进程。
43 mysql_list_tables() 不赞成。
列出MySQL 数据库中的表。
使用Use mysql_query() 代替。
mysql_num_fields() 取得结果集中字段的数目。
3 mysql_num_rows() 取得结果集中行的数目。
3 mysql_pconnect() 打开一个到MySQL 服务器的持久连接。
3第六节用PHP连接MySQL在我们从我们的MySQL数据库中获取我们的Web页面所包含的内容之前,我们首先必须知道如何建立与MySQL的连接。
在第四节中,我们使用了一个叫SQLyog的程序来做这样的连接。
PHP不需要这样的一个程序,对连接MySQL的支持是语言内置的。
下面的这个函数用来建立这样的连接:在这里,<address>是MySQL服务软件在其上运行的计算机的IP地址或主机名(如果这与运行Web服务软件的计算机是同一台,你可以使用"localhost"),<username>和<password>就是你在第四节中用来连接到MySQL服务器的用户名及口令。
PHP中绝大多数的函数在被调用后往往会返回(输出)一个值,可以存储在变量中以备下次使用。
例如我们上面介绍的mysql_connect函数,会返回一个数字来标识已经建立的连接。
因为我们会要使用这个连接,所以我们必须保存这个值。
下面是一个关于如何连接我们的MySQL数据库的一个实例:需要说明的是,对于你的MySQL服务器,上面这个函数中的三个参数的值可能是不同的。
你应该注意到在这儿我们的mysql_connect 返回了一个值(我们称之为一个连接标识),这个值被我们存储在变量$dbcnx中。
因为MySQL是一个完全分布式的软件,我们必须考虑到这些可能性:服务不可用、网络堵塞或者是我们的用户名及口令不匹配。
在这些情况下,mysql_connect函数不能返回一个连接标识(因为连接未被建立)。
这时,会返回一个逻辑假。
这使得我们可以用一个if 语句来处理连接的情况:@符号。
包括mysql_connect在内的许多函数会在失败后显示难看的错误信息。
在函数名前加一个@符号可以告诉这个函数当执行失败时,允许我们显示我们自己友好的出错信息。
其次,在我们的if语句的条件中,$dbcnx变量前面加了一个惊叹号。
这个惊叹号是PHP 中的“否运算符”。
也就是说将逻辑真变为逻辑假,将逻辑假变为逻辑真。
这样,如果这个连接是失败的,mysql_connect会返回一个逻辑假,!$dbcnx将等于逻辑真,这样我们的if 语句将被执行。
相反,如果这个连接是成功的,存储在$dbcnx 中的连接标识将等于逻辑真(在PHP中,任何非零的数字都被认为是逻辑真),所以!$dbcnx会等于逻辑假,if语句将不会被执行。
最后一个是exit函数,这是一个没有参数的函数。
这个函数的全部作用就是导致PHP 停止对本页的阅读。
如果数据库连接失败这是一个很好的响应,因为绝大多数情况下,如果不能连接到数据库,这一页不会显示任何有用的信息。