开源软件的升级就是快,这次修正了5.0.0的很多bug(ChangeLog),同时4.3.8和4.3.9也出来了。
php5在对OOP的支持上确实有很大加强,和Smarty结合作MVC模式感觉比php4爽多了。
据说php5在xml和webservice有很大增强,不过我还没试过。
开源软件的升级就是快,这次修正了5.0.0的很多bug(ChangeLog),同时4.3.8和4.3.9也出来了。
php5在对OOP的支持上确实有很大加强,和Smarty结合作MVC模式感觉比php4爽多了。
据说php5在xml和webservice有很大增强,不过我还没试过。
下面以两个银行账户之间的转账为例子进行演示。
要使用MySQL中的事务处理,首先需要创建使用事务表类型(如BDB = Berkeley DB或InnoDB)的表。
CREATE TABLE account ( account_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, balance DOUBLE ) TYPE = InnoDB;
要在事务表上使用事务处理,必须要首先关闭自动提交:
SET AUTOCOMMIT = 0;
事务处理以BEGIN命令开始:
BEGIN;
现在mysql客户处在于服务器相关的事物上下文中。任何对事务表所做的改变在提交之前不会成为永久性的改变。
UPDATE ACCOUNT SET balance = 50.25 WHERE account_id = 1;
UPDATE ACCOUNT SET balance = 100.25 WHERE account_id = 2;
在做出所有的改变之后,使用COMMIT命令完成事务处理:
COMMIT;
当然,事务处理的真正优点是在执行第二条语句发生错误时体现出来的,若在提交前终止整个事务,可以进行回滚操作:
ROLLBACK;
下面是另一个例子,通过MYSQL直接进行数学运算:
SELECT @first := balance FROM account WHERE account_id = 1;
SELECT @second := balance FROM account WHERE account_id = 2;
UPDATE account SET balance = @first – 25.00 WHERE account_id = 1;
UPDATE account SET balance = @second + 25.00 WHERE account_id = 2;
除了COMMIT命令外,下列命令也会自动结束当前事务:
ALTER TABLE
BEGIN
CREATE INDEX
DROP DATABASE
DROP TABLE
LOCK TABLES
RENAME TABLE
TRUNCATE
UNLOCK TABLES
此程序为练习PHPLIB之template之习作,到此已经比较完善,template也告一段落
汗,以前一直误以为MySQL不能存储图片
在mysql中建立一个新的数据库
一个怎样储存文件的例子程序
一个怎样访问文件的例子程序
在mysql中建立一个表
CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));
< ?php
// getdata.php3 – by Florian Dittmer <[email protected]> // 调用方法: getdata.php3?id=<id>
if($id) {
// 你可能需要调整主机名,用户名和密码: @MYSQL_CONNECT( "localhost", "root", "password");
@mysql_select_db( "binary_data");
$query = "select bin_data,filetype from binary_data where id=$id"; $result = @MYSQL_QUERY($query);
$data = @MYSQL_RESULT($result,0, "bin_data"); $type = @MYSQL_RESULT($result,0, "filetype");
Header( "Content-type: $type"); echo $data;
}; ?>
怎样储存大于1MB的文件:
如果你想储存大于2MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改。
下面几条也许可以帮助你储存小于24MB的文件:
修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000
去掉MYSQL的数据包大小限制,在一般情况下 MYSQL 小于1 MB的数据包.
你必须用以下参数重启你的MYSQL
/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M
如果仍然出错:
可能是超时错误,如果你通过一个很慢的连接来储存一个很大的文件,PHP缺省的时间限制为30秒。
你可以将max_execution_time(在php.ini中)的值改为-1
不知为什么,一直都搞不好这字符串,无论PHP还是其它,汗!!
PHP中的字符串操作功能是比较多的,重要的有以下这些:
(1)echo,print,printf,sprintf
前两个函数是输出字符串.字符串中如果有变量名则被替换成其值. 后两个函数类似于C的同名函数.
(2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower, strtoupper,substr,ucfirst
这些是常用的字符串操作函数,有些和C中的同名函数意义完全一致.
strrev是把一个字符串翻转.
strtolower和strtoupper的意思应该不用解释了.
ucfirst是把字符串的第一个字符变成大写.
substr是返回字符串的一个子串,用法是:substr(字符串,头,长度).
头位置是 从0算起的.如果是负数,则是从尾部向前数的意思.
(3)Chr,Ord
类似于C的同名函数.
(4)explode,implode,join
这些是和数组有关的函数.
explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组.
implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串.
join与implode意义相同.
(5)Chop
去掉字符串尾部的空白.
(6)htmlspecialchars
将字符串中的HTML特殊字符换成它们的名字,例如”< “变成”<“.
(7)nl2br
在字符串中的每一个回车前面加上”<BR>”.
(8)AddSlashes,StripSlashes
分别给字符串中需要加上””才能用于数据库查询的字符加上和去掉””.
(9)parse_str
将”name1=value1&name2=value2&…”类型的字符串分析成一些变量.
例如:
parse_str("a=1&b=2");
生成$a与$b两个变量,值分别为1,2. 如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的. 如果这两对的名字尾部都有”“,例如”a=1&a=2″,则生成数组$a,两个元素分别为1,2
在 php 的配置/信息里面有一个设置脚本执行时间的函数,具体情况如下: set_time_limit 配置该页最久执行时间。 语法: void set_time_limit(int seconds); 返回值: 无 函数种类: PHP 系统功能 内容说明 本函数用来配置该页最久执行时间。默认值是 30 秒,在 php.ini 中的 max_execution_time 变量配置,若配置为 0 则不限定最久时间。当执行到该函数时,才开始计算。例如,若默认是 30 秒,而在执行到该函数前已执行了 25 秒,而用本函数改为 20 秒,则该页面最长执行时间为 45 秒。 使用实例: