友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
富士康小说网 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

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 是否是负数、零或�
返回目录 上一页 下一页 回到顶部 赞(10) 踩(11)
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!