52 lines
		
	
	
		
			861 B
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			861 B
		
	
	
	
		
			PHP
		
	
	
	
|  | -- connect (con1,localhost,root,,) | ||
|  | -- connect (con2,localhost,root,,) | ||
|  | 
 | ||
|  | -- connection con1 | ||
|  | SET autocommit=0; | ||
|  | SELECT * FROM t1 FOR UPDATE; | ||
|  | -- if ($con1_extra_sql_present) { | ||
|  | 	-- eval $con1_extra_sql | ||
|  | -- } | ||
|  | 
 | ||
|  | -- connection con2 | ||
|  | SET autocommit=0; | ||
|  | SELECT * FROM t2 FOR UPDATE; | ||
|  | -- if ($con2_extra_sql_present) { | ||
|  | 	-- eval $con2_extra_sql | ||
|  | -- } | ||
|  | 
 | ||
|  | -- if ($con1_should_be_rolledback) { | ||
|  | 	-- connection con1 | ||
|  | 	-- send | ||
|  | 	INSERT INTO t2 VALUES (0); | ||
|  | 
 | ||
|  | 	-- connection con2 | ||
|  | 	INSERT INTO t1 VALUES (0); | ||
|  | 	ROLLBACK; | ||
|  | 
 | ||
|  | 	-- connection con1 | ||
|  | 	-- error ER_LOCK_DEADLOCK | ||
|  | 	-- reap | ||
|  | -- } | ||
|  | # else
 | ||
|  | -- if (!$con1_should_be_rolledback) { | ||
|  | 	-- connection con2 | ||
|  | 	-- send | ||
|  | 	INSERT INTO t1 VALUES (0); | ||
|  | 
 | ||
|  | 	-- connection con1 | ||
|  | 	INSERT INTO t2 VALUES (0); | ||
|  | 	ROLLBACK; | ||
|  | 
 | ||
|  | 	-- connection con2 | ||
|  | 	-- error ER_LOCK_DEADLOCK | ||
|  | 	-- reap | ||
|  | -- } | ||
|  | 
 | ||
|  | -- connection default | ||
|  | 
 | ||
|  | DELETE FROM t5_nontrans; | ||
|  | 
 | ||
|  | -- disconnect con1 | ||
|  | -- disconnect con2 |