ホームページ >バックエンド開発 >PHPチュートリアル >PHPトランザクションの書き方

PHPトランザクションの書き方

WBOY
WBOYオリジナル
2016-06-13 12:44:46943ブラウズ

PHP トランザクションの作成方法?
現在、更新と挿入が 1 つありますが、PHP トランザクションの作成方法は?
コードは次のとおりです。エラーは、値の型でエラーが発生し、トランザクションが機能しなかったということです。

$db = new DbManager();<br />
	$conn = $db->getConnection();<br />
	$conn->set_charset("utf8");<br />
	<br />
	if(mysqli_connect_errno())<br />
	{<br />
		echo 'error connect database! please content manager!';<br />
		exit;<br />
	}<br />
	//echo connection_status();<br />
	$tbNums = explode(',',$tbNum);<br />
	<br />
	$conn->autocommit(FALSE);<br />
	$flag = true;<br />
	$a=0;<br />
	foreach($tbNums as $key => $value)<br />
	{<br />
		$updateBalance = "UPDATE T_SMS_TBNUM SET STATUS = 2 WHERE ID = ?";<br />
		$insertRelate = "INSERT INTO T_SMS_TBNUMRELATE (TBID,OWNCLIENTID,REALFEE,CREATETIME) VALUES(?,?,?,?)";<br />
		<br />
		<br />
		$stmtUpdateClient = $conn->prepare($updateBalance);<br />
		$stmtUpdateClient->bind_param('i',$value);<br />
		$ss = $stmtUpdateClient->execute();<br />
		<br />
		$stmt = $conn->prepare($insertRelate);<br />
		$foura = 4;<br />
		$a++;<br />
		if($a!=0){<br />
			$value = 's';<br />
		}<br />
		$stmt->bind_param('iids',$value,$clientId,$foura,date('Y-m-d H:i:s'));<br />
		$boooo = $stmt->execute();<br />
		echo $ss.'+'.$boooo;<br />
		if($stmtUpdateClient->affected_rows <= 0 || $stmt->affected_rows <= 0)<br />
		{<br />
			echo $stmtUpdateClient->affected_rows.'|'.$stmt->affected_rows;<br />
			$flag = false;<br />
			break;<br />
		}<br />
	}<br />
		if(!$flag)<br />
		{<br />
			$conn ->rollback();<br />
			$conn -> autocommit(TRUE);<br />
			$conn->close();<br />
			return 'paylog false!';<br />
		}else<br />
		{<br />
			$conn->commit();<br />
			$conn -> autocommit(TRUE);<br />
			$conn->close();<br />
			return '1';<br />
		}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。