PHPはMySQLトランザクションインスタンス、mysqlトランザクションインスタンスを操作します
この記事の例は、PHP が MySQL トランザクションを操作する方法を説明しており、参考のために共有されています。具体的な方法は以下の通りです
一般的に言えば、トランザクションには ACID 特性が必要です。いわゆるACIDとは、Atomic(原子性)、Consistent(一貫性)、Isolated(分離)、Durable(永続性)の4つの単語の頭文字をとって書かれており、その意味を「銀行振込」を例に説明していきます。 :
① アトミック性: トランザクションを構成するステートメントは論理的な単位を形成し、その一部のみを実行することはできません。つまり、トランザクションは分割できない最小単位です。例: 銀行振込処理中に、ある口座から振込金額を差し引いて、同時に別の口座に追加する必要があります。1 つの口座だけを変更するのは不合理です。
② 整合性:トランザクション処理実行前後でデータベースの整合性が保たれています。つまり、トランザクションはシステム状態を正しく変換する必要があります。例: 銀行振込プロセス中に、振込金額が 1 つの口座から別の口座に送金されるか、両方の口座が変更されず、それ以外の状況は発生しません。
③ 分離: あるトランザクションは別のトランザクションに影響を与えません。つまり、どのトランザクションでもトランザクションが不完全な状態にあることを確認することは不可能です。たとえば、銀行送金中、送金トランザクションが送信されるまでは、別の送金トランザクションは待機状態になることしかできません。
④継続性:トランザクション処理の効果を永続的に保存することができます。一方、トランザクションは、サーバー、プロセス、通信、メディアの障害など、あらゆる障害に耐えられる必要があります。例: 銀行振込処理中に、振込後の口座ステータスを保存する必要があります。
PHP では、mysqli は mysql トランザクションの関連操作を適切にカプセル化しています。以下の例:
$sql2 = "ScoreDetail を更新 set FScore = 300、ID= '123456'";
$sql3 = "ScoreDetail ID,Score) 値 ('123456',60) に挿入";
$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false);//物事を始める
$mysqli->クエリ($sql1);
$mysqli->クエリ($sql2);
if(!$mysqli->errno){
$mysqli->commit();
「ok」をエコーします;
}その他{
エコー「エラー」;
$mysqli->rollback();
}
ここでは、php mysql 一連の関数を使用してトランザクションを実行します。
$sql2 = "ScoreDetail を更新 set FScore = 300、ID= '123456'";
$sql3 = "ScoreDetail ID,Score) 値 ('123456',60) に挿入";
$conn = mysql_connect('localhost','root','');
mysql_select_db('DB_Lib2Test');
mysql_query('トランザクション開始');
//mysql_query('SET autocommit=0');
mysql_query($sql1);
mysql_query($sql2);
if(mysql_errno ()){
Mysql_query('ロールバック');
エコー「エラー」;
}その他{
Mysql_query('コミット');
「ok」をエコーします;
}
// mysql_query('SET autocommit=1');
// mysql_query($sql3);
ここに注意してください:
MyISAM: トランザクションをサポートせず、パフォーマンスを向上させるために読み取り専用プログラムに使用されます
InnoDB: ACID トランザクション、行レベルのロック、同時実行性をサポートします
Berkeley DB: トランザクションをサポートします
この記事が皆様の PHP+MySQL データベース プログラミングのお役に立てれば幸いです。
以下は、学習に適した php5 の単純なデータベース カプセル化クラスです。削除や更新などの他の操作については、自分で追加できます:
class Mysql{ //最初にクラスを定義し、最初に Capital を記述します。文字
public $host;//サーバー名、アクセス修飾子 PUBLIC は、$host がパブリック属性であり、クラス内外の両方でアクセス可能であり、継承可能であることを証明します
public $user;//ユーザー名は public 属性です
private $pass;//パスワードは、$pass がプライベートであることを証明するために private 修飾子を要求します。
public $dbname;// データベース名も public 属性です。
/ /__construct は、これがいくつかの初期情報を定義するコンストラクターであることを宣言します。これには 3 つのパラメーターがあります
public function __construct($host,$user,$pass,$dbname){
$this->host = $host;
$this ->user = $user;
$this->pass = $pass;
$this->dbname = $dbname;
$link = @mysql_connect($this->host,$this->user ,$this->pass)
or die("error");
@mysql_select_db($this->dbname,$link)
or die("error2");
}
//次の検索合計を定義しますデータベース表示関数
function myQuery($sql){
$result = mysql_query($sql);
if(!$result){
echo "error3";
exit;
}
$num = mysql_num_rows($result) ;
if($num){
echo "NO".$num;
}
while($row = mysql_fetch_assoc($result)){
echo '
'.htmlspecialchars(stripslashes($row['body']))."<pre class="brush:php;toolbar:false">
}
}
}
$rutt = new Mysql( 'localhost ','root','ssss','calvin');//クラスをインスタンス化します...ここでのパラメーターはコンストラクターのパラメーターと同じであることに注意してください...
$rutt->myQuery( .. ....本文の続き>>
//以下はキャッシュ クラスです:
class cache {
//キャッシュ ディレクトリ
var $cacheRoot = "./cache/";
//キャッシュ更新時間 (秒)、0 はキャッシュなしを意味します
var $cacheLimitTime = 0;
//キャッシュファイル名
var $cacheFileName = "";
//キャッシュ拡張子
var $cacheFileExt = "html";
/*
* Constructor
* int $cacheLimitTime キャッシュ更新時間
* /
関数cache( $cacheLimitTime ) {
if( intval( $cacheLimitTime ) )
$this->cacheLimitTime = $cacheLimitTime;
$this->cacheFileName = $this->getCacheFileName();
//echo $this->cacheFileName;
ob_start();
}
/*
* キャッシュファイルが設定された更新時間内かどうかを確認します
* Return: 更新時間内であればファイルの内容を返し、それ以外の場合はファイルの内容を返します。失敗を返します
*/
関数cacheCheck(){
if( file_exists( $this->cacheFileName ) ) {
$cTime = $this->getFileCreateTime( $this->cacheFileName );
if( $cTime + $this- >cacheLimitTime > time() ) {
echo file_get_contents( $this->cacheFileName );
ob_end_flush();
exit;
}
}
return false;
}
/*
*キャッシュファイルまたは出力 Static
* string $staticFileName 静的ファイル名 (相対パスを含む)
*/
function caching( $staticFileName = "" ){
if( $this->cacheFileName ) {
$cacheContent = ob_get_contents() ;
// echo $cacheContent;
ob_end_flush();
if( $staticFileName ) {
$this->saveFile( $staticFileName, $cacheContent );
}
if( $this->cacheLimitTime )
$this-> ;saveFile( $this->cacheFileName, $cacheContent );
}
}
/*
...残りの全文>>

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック



