作者marinne (乳玛琳)
看板PHP
标题Re: [请益] 上传档案问题
时间Tue Dec 20 01:28:07 2005
※ 引述《cjoe (cjoe)》之铭言:
: ※ 引述《marinne (乳玛琳)》之铭言:
: : [del]
: : 交易功能如果你的mysql server有支援的话当然可以用啊。
: : mysql_query('BEGIN_TRANS');
: : mysql_query('INSERT INTO ...');
: : $inser_id = mysql_insert_id();
: : if(!move_uploaded_file($source, '/path/to/'.$insert_id.$file_extension)) {
: : mysql_query('ROLLBACK_TRANS');
: : do_error_handling();
: : }
: : mysql_query('COMMIT_TRANS');
: : 大致上是这样。
: 请问,要在什麽版本或什麽条件下才有支援呢?
: 因为我之前听说MySQL不支援 交易功能,例如rollback之类的。
: 谢谢
(说明一下,之前写的BEGIN_TRANS / ROLLBACK_TRANS / COMMIT_TRANS这些
语法在mysql里面实际用的语法不太一样,不要直接复制去用)。
是否支援交易功能,和你选用的资料表形态有关,和mysql server的版本
比较无直接相关。要使用交易功能你必须使用BDB或者InnoDB作为资料表形态,
预设使用的myisam并不支援交易功能。并非一定要mysql 5才支援BDB或者InnoDB
资料表,在以前3.x的版本就有了,4.x也有。下载的时候要注意网页上的说明,
看看下载的版本是否有支援这两种资料表形态。
Windows版本的话,现在较新版本的mysql server都会附有安装与设定程式,
在安装过程中会问你要怎麽使用这个mysql server,其中会有支援交易功能
的选项,选这个就会把InnoDB纳入。Linux/U*ix版本的话,有"Max"的版本
有纳入。如果是mysql 5.x的话,所有的binary下载都会预设纳入InnoDB。
要检查已安装的mysql server支援哪些储存引擎类型,可以用SHOW ENGINES:
(以下结果有些太长我把後面删掉了)
mysql> SHOW ENGINES;
+------------+---------+---------------------------------------------------+
| Engine | Support | Comment |
+------------+---------+---------------------------------------------------+
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great per....|
| HEAP | YES | Alias for MEMORY |
| MEMORY | YES | Hash based, stored in memory, useful for tempor.. |
| MERGE | YES | Collection of identical MyISAM tables |
| MRG_MYISAM | YES | Alias for MERGE |
| ISAM | NO | Obsolete storage engine, now replaced by MyISAM |
| MRG_ISAM | NO | Obsolete storage engine, now replaced by MERGE |
| InnoDB | YES | Supports transactions, row-level locking, and ... |
| INNOBASE | YES | Alias for INNODB |
| BDB | YES | Supports transactions and page-level locking |
| BERKELEYDB | YES | Alias for BDB |
| NDBCLUSTER | NO | Clustered, fault-tolerant, memory-based tables |
| NDB | NO | Alias for NDBCLUSTER |
| EXAMPLE | NO | Example storage engine |
| ARCHIVE | NO | Archive storage engine |
| CSV | NO | CSV storage engine |
| BLACKHOLE | NO | Storage engine designed to act as null storage |
+------------+---------+---------------------------------------------------+
17 rows in set (0.01 sec)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.153.37