友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
php程序设计简明教程(DOC格式)-第10部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
/* 对于非真值的 WHERE 子句,应返回 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf(〃Records deleted: %dn〃; mysql_affected_rows());
?》
上例的输出类似于:
Records deleted: 10
Records deleted: 0
例子 使用事务处理的 mysql_affected_rows() 例子
上例的输出类似于:
Updated Records: 10
事务处理:如果使用事务处理(transactions ),需要在 INSERT ,UPDATE 或 DELETE 查询后调用
mysql_affected_rows() 函数,而不是在 MIT 命令之后。
〃Y mysql_fetch_array
从结果集中取得一行作为关联数组,或数字数组,或二者兼有。
语法格式:
array mysql_fetch_array ( resource result '; int result_type' )
返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE 。
例子 2。 mysql_fetch_array 使用 MYSQL_NUM
〃Y mysql_free_result
释放资源变量所占内存。
语法格式:
PHP 讲义 第 66 页 共 90 页
…………………………………………………………Page 67……………………………………………………………
bool mysql_free_result ( resource result )
mysql_free_result() 将释放所有与结果标识符 result 所关联的内存。
mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存
都会被自动释放。
如果成功则返回 TRUE ,失败则返回 FALSE 。
3。 PHP 操纵MySQL 实例
(1)准备示例数据
使用mysql。exe 或phpMyAdmin:
在test 数据库中建立表abc,
表abc 的结构如下:
列名 类型
a varchar(10)
b varchar(10)
c varchar(10)
在表abc 中插入示例数据:
列a 的数据 列b 中的数据 列c 的数据
a1 b1 c1
a2 b2 c2
a3 b3 c3
(2 )准备示例程序abc。php,存放在发布文档目录d:www 下,其内容为:
a 列数据b 列数据c 列数据
测试步骤
在浏览器地址栏输入:http://你的机器 IP 地址/mysqltest。php ,回车;显示如下图所示,则使用 PHP 从 MySQL
数据库中成功取出了数据,表明PHP 与MySQL 能够协同工作了。
4。MySQL 的常用列类型
在设计数据库表时,必须考虑数据类型。MySQL 支持大量的列类型,常用的可分为3 类:数字类型、日期和时
间类型以及字符串(字符)类型。这里简明介绍常用的列类型,更多列类型的详细说明请参考手册。
约定:
PHP 讲义 第 68 页 共 90 页
…………………………………………………………Page 69……………………………………………………………
M :指出最大的显示尺寸。最大的合法的显示尺寸是 255 。
D :适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M…2。
方括号( “'”和“' ”)指明其中的参数可选。
注意,如果带上参数ZEROFILL,MySQL 将为该列自动地增加UNSIGNED 属性。
(1)数字类型
TINYINT'(M)' 'UNSIGNED' 'ZEROFILL'
微整型,一个很小的整数。有符号的范围是…128 到127,无符号的范围是0 到255 。 存储时占用一个字节。
INT'(M)' 'UNSIGNED' 'ZEROFILL'
整型,一个正常大小整数。有符号的范围是…2147483648 到2147483647,无符号的范围是0 到4294967295 。
存储时占用4 个字节。
FLOAT'(M;D)' 'ZEROFILL'
实型,一个小(单精密)浮点数字。不能无符号。允许的值是…3。402823466E+38 到…1。175494351E…38 ,0 和
1。175494351E…38 到3。402823466E+38。M 是显示宽度而D 是小数的位数。
存储时占用4 个字节。
(2 )日期时间类型
DATE
一个日期。支持的范围是'1000…01…01'到'9999…12…31' 。MySQL 以'YYYY…MM…DD'格式来显示 DATE 值,但是允
许你使用字符串或数字把值赋给DATE 列。
存储时占用3 个字节。
DATETIME
一个日期和时间组合。支持的范围是'1000…01…01 00:00:00'到'9999…12…31 23:59:59'。MySQL 以'YYYY…MM…DD
HH:MM:SS'格式来显示DATETIME 值,但是允许你使用字符串或数字把值赋给DATETIME 的列。
存储时占用8 个字节。
(3)字符类型
CHAR(M)
一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。M 的范围是1 ~ 255 个字符。当值被检索
时,空格尾部被删除。CHAR 值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY 关键词。
CHAR 是CHARACTER 的一个缩写。
存储时占用M 个字节。
VARCHAR(M)
一个变长字符串。注意:当值被存储时,尾部的空格被删除。M 的范围是1 ~ 255 个字符。 VARCHAR 值以
大小写不区分的方式排序和比较,除非给出BINARY 关键词值。VARCHAR 是CHARACTER VARYING 一个缩
写。
存储时占用L+1 字节; 在此L select 102/(1…1);
…》 NULL
(3)逻辑运算
所有的逻辑函数返回1 (TRUE )或0 (FALSE)。 NULL 被认为是假值。
NOT (! )逻辑非
PHP 讲义 第 70 页 共 90 页
…………………………………………………………Page 71……………………………………………………………
OR (||)逻辑或
AND (&&)逻辑与
(4 )比较运算符
比较操作得出值1 (TRUE )、0 (FALSE)或NULL 等结果。这些函数工作运用在数字和字符串上。
= 等于
不等于
!= 不等于
= 大于或等于
》 大于
mysql》 select 2 》 2;
…》 0
IS NULL 是否为空
IS NOT NULL 是否不为空
mysql》 select 1 IS NULL; 0 IS NULL; NULL IS NULL:
…》 0 0 1
expr BETWEEN min AND max
如果expr 对大于或等于min 且expr 是小于或等于max,BETWEEN 返回1,否则它返回0。
mysql》 select 1 BETWEEN 2 AND 3;
…》 0
mysql》 select 2 BETWEEN 2 AND '3';
…》 1
expr IN (value;。。。)
如果expr 是在IN 表中的任何值,返回1,否则返回0。如果所有的值是常数,那么所有的值根据expr 类型被计
算和排序,然后项目的搜索是用二进制的搜索完成。这意味着如果IN 值表全部由常数组成,IN 是很快的。如果
expr 是一个大小写敏感的字符串表达式,字符串比较以大小写敏感方式执行。
mysql》 select 2 IN (0;3;5;'wefwf');
…》 0
mysql》 select 'wefwf' IN (0;3;5;'wefwf');
…》 1
expr NOT IN (value;。。。)
与NOT (expr IN (value;。。。))相同。
ISNULL(expr)
如果expr 是NULL,ISNULL()返回1,否则它返回0。
mysql》 select ISNULL(1+1);
…》 0
mysql》 select ISNULL(1/0);
…》 1
注意,使用=的NULL 的值比较总为假!
(5)字符串比较函数
通常,如果在字符串比较中的任何表达式是区分大小写的,比较以大小写敏感的方式执行。
expr LIKE pat tern'ESCAPE 'escape…char''
将expr 与模式字符串pattern 进行模式匹配。返回 1 (TRUE )或0 (FALSE)。用LIKE,你可以在模式中使用
下列2 个①% 匹配任何数目的字符,甚至零个字符
PHP 讲义 第 71 页 共 90 页
…………………………………………………………Page 72……………………………………………………………
②_ 精确匹配一个字符
mysql》 select 'David!' LIKE 'David_';
…》 1
mysql》 select 'David!' LIKE '%D%v%';
…》 1
为了测试一个通配符的文字实例,用转义字符的加在字符前面。如果你不指定ESCAPE 字符,假定为“ ”:
% 匹配%字符
_ 匹配_字符
mysql》 select 'David!' LIKE 'David_';
…》 0
mysql》 select 'David_' LIKE 'David_';
…》 1
为了指定一个不同的转义字符,使用ESCAPE 子句:
mysql》 select 'David_' LIKE 'David|_' ESCAPE '|';
…》 1
LIKE 允许用在数字的表达式上!(这是MySQL 对ANSI SQL LIKE 的一个扩充。)
mysql》 select 10 LIKE '1%';
…》 1
expr NOT LIKE pattern 'ESCAPE 'escape…char''
与NOT (expr LIKE pattern'ESCAPE 'escape…char'')相同。
(6 )控制流函数
IF(expr1;expr2;expr3)
如果expr1 是TRUE(expr10 且expr1NULL),那么IF()返回expr2,否则它返回expr3 。IF()返回一个数字
或字符串值,取决于它被使用的上下文。
mysql》 select IF(1》2;2;3);
…》 3
mysql》 select IF(1 'yes'
mysql》 select IF(strcmp('test';'test1');'yes';'no');
…》 'no'
expr1 作为整数值被计算,它意味着如果你正在测试浮点或字符串值,应该使用一个比较操作来做。
mysql》 select IF(0。1;1;0);
…》 0
mysql》 select IF(0。10;1;0);
…》 1
在上面的第一种情况中,IF(0。1)返回0,因为0。1 被变换到整数值; 导致测试IF(0)。这可能不是你期望的。在第
二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。
CASE value WHEN 'pare…value' THEN result 'WHEN 'pare…value' THEN result 。。。' 'ELSE result'
END
CASE WHEN 'condition' THEN result 'WHEN 'condition' THEN result 。。。' 'ELSE result' END
第一个版本返回 result,其中value=pare…value。第二个版本中如果第一个条件为真,返回result。如果没
PHP 讲义 第 72 页 共 90 页
…………………………………………………………Page 73……………………………………………………………
有匹配的result 值,那么结果在ELSE 后的result 被返回。如果没有ELSE 部分,那么NULL 被返回。
mysql》 SELECT CASE 1 WHEN 1 THEN 〃one〃 WHEN 2 THEN 〃two〃 ELSE 〃more〃 END;
…》 〃one〃
mysql》 SELECT CASE WHEN 1》0 THEN 〃true〃 ELSE 〃false〃 END;
…》 〃true〃
mysql》 SELECT CASE BINARY 〃B〃 when 〃a〃 then 1 when 〃b〃 then 2 END;
…》 NULL
(7)数学函数
所有的数学函数在一个出错的情况下返回NULL。
ABS(X)
返回X 的绝对值。
SIGN(X)
返回参数的符号,为…1、0 或1,取决于X 是否是负数、零或�
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!