本文目录一览:
- 1、PHP MYSQL面向对象编程,不明白其具体意义何在?提高了性能、效率、重用?
- 2、谈谈你对 mysql 事务的认识 我是php初学者不懂这个 想请教大神教我
- 3、PHP开发怎么学习?PHP学习有没有什么方法?
PHP MYSQL面向对象编程,不明白其具体意义何在?提高了性能、效率、重用?
把 mysql 与 php 的链接看做一个对象,这个对象负责php与mysql的交互。
其意义在于把数据库的链接抽象成了对象,抽象的意义在于化繁为简。
普通的那种方式,更像是一种行为,全都是行为由谁发出呢?由php语言本身?
面向对象的方式,则有这个对象发出!
谈谈你对 mysql 事务的认识 我是php初学者不懂这个 想请教大神教我
先简单介绍一下事务吧!事务是DBMS得执行单位。它由有限得数据库操作序列组成得。但不是任意得数据库操作序列都能成为事务。一般来说,事务是必须满足4个条件(ACID)
原子性(Autmic):事务在执行性,要做到“要么不做,要么全做!”,就是说不允许事务部分得执行。即使因为故障而使事务不能完成,在rollback时也要消除对数据库得影响!
一致性(Consistency):事务得操作应该使使数据库从一个一致状态转变倒另一个一致得状态!就拿网上购物来说吧,你只有即让商品出库,又让商品进入顾客得购物篮才能构成事务!
隔离性(Isolation):如果多个事务并发执行,应象各个事务独立执行一样!
持久性(Durability):一个成功执行得事务对数据库得作用是持久得,即使数据库应故障出错,也应该能够恢复!
MYSQL的事务处理主要有两种方法。
1、用begin,rollback,commit来实现
begin
开始一个事务
rollback 事务回滚
commit 事务确认
2、直接用set来改变mysql的自动提交模式
MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
set autocommit=0
禁止自动提交
set autocommit=1 开启自动提交
来实现事务的处理。
但注意当你用 set
autocommit=0
的时候,你以后所有的SQL都将做为事务处理,直到你用commit确认或rollback结束,注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!
个人推荐使用第一种方法!
MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!(切记!)
下次有空说下MYSQL的数据表的锁定和解锁!
MYSQL5.0 WINXP下测试通过~ ^_^
mysql use test;
Database
changed
mysql CREATE TABLE `dbtest`(
- id int(4)
- ) TYPE=INNODB;
Query OK, 0 rows affected, 1 warning (0.05
sec)
mysql select * from dbtest
- ;
Empty set (0.01
sec)
mysql begin;
Query OK, 0 rows affected (0.00
sec)
mysql insert into dbtest value(5);
Query OK, 1 row affected
(0.00 sec)
mysql insert into dbtest value(6);
Query OK, 1 row
affected (0.00 sec)
mysql commit;
Query OK, 0 rows affected (0.00
sec)
mysql select * from dbtest;
+------+
| id
|
+------+
| 5 |
| 6 |
+------+
2 rows in set (0.00
sec)
mysql begin;
Query OK, 0 rows affected (0.00
sec)
mysql insert into dbtest values(7);
Query OK, 1 row affected
(0.00 sec)
mysql rollback;
Query OK, 0 rows affected (0.00
sec)
mysql select * from dbtest;
+------+
| id
|
+------+
| 5 |
| 6 |
+------+
2 rows in set (0.00
sec)
mysql
*******************************************************************************************************************
[PHP]
function
Tran( $sql ) {
$judge = 1;
mysql_query('begin');
foreach ($sql as $v) {
if
( !mysql_query($v) ) {
$judge =
0;
}
}
if ($judge == 0)
{
mysql_query('rollback');
return
false;
}
elseif ($judge == 1) {
mysql_query('commit');
return true;
}
}
[/PHP]
************************************************
?php
$handler=mysql_connect("localhost","root","");
mysql_select_db("task");
mysql_query("SET
AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert
into trans (id)
values('2')"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert
into trans (id)
values('4')"))
{
mysql_query("ROOLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
?
引自:
PHP开发怎么学习?PHP学习有没有什么方法?
一、学前准备
1、建议首先要对网站有个整体的认识,对做网站需要学习的知识要有个认识,从而确定自己的学习方向,不要学一半,又觉得自己似乎不适合学这个,而半途改道,这样很浪费时间,也不是学技术的人该有的心态。
2、PHP是什么网上有很多资料这里不多说了,自己一定要好好看看。由于它是开源的可以从一些网站上下载很多源码,甚至整站源码。但是如果你想要学的好的话,很多东西东西都是自己设计,而不是二次开发。
3、强调一下php并不是想网上一些人说的那样简单,它只是语法简单,深入还是要努力。
二、学习顺序
(1)熟悉HTML/CSS/JS等网页基本元素
(2)理解动态语言的概念,运做机制,熟悉PHP语法
(3)学习如何将PHP与HTML结合起来完成简单动态页面
(4)接触MYSQL,开始设计数据库程序,学会基本对数据库的操作
(5)学会一个模版(建议是smarty),会话控制session和cookie,ajax
(6)继续深入学会怎么设计一个优秀的数据库
三、学习方法总结
1, 学习资料:一本好的书籍+配套的视频+几个常用的网站
2, 开发工具:记事本,eclipse,Zend Studio 。
学习阶段可以使用记事本,但是它的开发效率低,开发的时候要用到其他开发工具,eclipse,Zend
Studio是两款最常用的工具。Eclipse是完全免费的产品,Zend
Studio(是一款集成开发软件)是收费,但是它的破解方法很简单。当然还有其他的开发软件,自己可以挑选一个适合自己的。
3, 刚开始学习的时候基本上都会要学习lamp或者是wamp的环境的搭建,搭建环境的过程不是很多,但是可能会遇到很多问题(也可能你运气好一次搭建好),千万不要灰心,一定会解决的。
4, 在学习php的前期虽然用不到那么多数据库的知识,但是懂得怎么使用它是很有必要的。等你可以开发网站后,设计一个好的数据库就会成为一个成功的网站关键。
5, 在学习的过程中还要准备各种开发手册,php手册,mysql手册,以及一些框架的手册。
6, php是一种后台语言,但是在学习后台之前还需要学习前台语言,DIV+CSS,HTML,JavaScript,以及实现异步传输的ajax。
7, 学习ajax基本上是必须,但是学习它之前最好学习了javascript和xml,这样才能从本质上了解原理。
8,有很多软件专门用来管理和设计数据库,这个很方便但是你一定要懂得sql语言,才能更好的设计数据库,以及在php中用对数据库进行相关的操作。
9,eclipse默认是不能开发php的,需要你对它进行扩展。扩展后要安装Xdebugger或者是Zend_Debugger,安装以后才能进行调试,调试和java调试基本一样。
10,在学习php的过程中一定会遇到很多问题,你一定会去查找各种资料或者是别人,但是很有可能你下次遇到还是不懂,所以这就需要你要把遇到过的问题和解决方法记录下来。
学习IT类,不论是哪一类不能仅靠理论知识,实战和项目(也就是多练习)是重点!