PHP5はMySQLデータベースの基本コードを操作します
Jun 13, 2016 pm 12:21 PM
1. データベース接続を確立します
コードをコピーします コードは次のとおりです。
< ?php
$mysqli = new mysqli("localhost","root","","mydb");
?>
データベースを確立するには 4 つのパラメータが必要です接続。データベース アドレス、データベース アクセス ユーザー名、データベース アクセス パスワード、データベース名です。上記の mysqli オブジェクトのコンストラクター メソッドを使用してデータベース接続を確立するだけでなく、その connect メソッドを呼び出してデータベース接続を確立することもできます。
コードをコピー コードは次のとおりです。
$mysqli = new mysqli();
$mysqli->connect("localhost","root","","mydb");
?>
を介してデータ接続を確立することもできます。 mysqli オブジェクトの構(gòu)築メソッドで、select_db メソッドを通じてアクセスするデータベースを指定します。
コードをコピー コードは次のとおりです:
$mysqli = new mysqli("localhost "," root","");
$mysqli->select_db("mydb");
?>
現(xiàn)在の接続のエラー番號を取得します。 mysqli オブジェクトの errno 屬性。現(xiàn)在の接続にエラーがない場合、エラー番號は 0 として返されます。
コードをコピー コードは次のとおりです:
$mysqli = new mysqli("localhost "," root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //現(xiàn)在の接続が成功したかどうかを判斷します
{
}
else
{
echo "接続がエラーです!"
}
?>;
Sure mysqli オブジェクトの error 屬性を通じて現(xiàn)在の接続のエラー情報(bào)を取得し、エラーがない場合は "" を返します。
コードをコピー
コードは次のとおりです: $mysqli = new mysqli("localhost ","rootss","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //現(xiàn)在の接続が成功したかどうかを判斷します
{
}
else
{
echo $mysqli->error; // 現(xiàn)在のエラーメッセージを出力します
exit()>}
?>
2. データベースをクエリする
構(gòu)文は次のとおりです: $mysqli->query (クエリ ステートメント、クエリ モード); クエリ モードは 2 つあります: ① MYSQLI_STORE_RESULT。結(jié)果をキャッシュされたセットとして返すということは、結(jié)果セット全體を一度にナビゲートできることを意味します。この設(shè)定がデフォルトです。結(jié)果セットはクエリされた後、メモリに格納されます。これは、結(jié)果セット內(nèi)のデータ量が多い場合、より多くのメモリを占有することを意味します。ただし、このメソッドを使用すると、クエリによって返されるレコードの行數(shù)を簡単に確認(rèn)したり、結(jié)果セットの特定の行にすぐにジャンプしたりすることができます。
② MYSQLI_USE_RESULT。結(jié)果セットをキャッシュされていないセットとして返します。これは、結(jié)果セットが必要に応じてデータベース サーバーからフェッチされることを意味し、より大きな結(jié)果セット データのパフォーマンスを向上させることができます。ただし、クエリ行數(shù)の取得など、結(jié)果セットに対する多くの操作は制限されます。
コードをコピー
コードは次のとおりです: $mysqli = new mysqli("localhost "," root","");
$mysqli->select_db("mydb");if($mysqli->errno == 0) //現(xiàn)在の接続が成功したかどうかを判斷します
{
$sql = "SELECT * FROM 學(xué)生";
$result = $mysqli->query($sql);
echo "結(jié)果の行番號:".$result->num_rows ."
//結(jié)果セットを繰り返します
while(list($id,$name,$age,$address) = $result-> fetch_row())
{
echo "$id : $name : $age : $address"."
";
}
}
else
{
echo $mysqli-> //現(xiàn)在のエラーメッセージを出力します。
結(jié)果の fetch_row メソッドを使用します。結(jié)果セット內(nèi)のデータの各行を取得する set オブジェクト、各行 データは連想配列であり、その中の各データは list メソッドを使用して出力されます。出力オブジェクトを使用して、結(jié)果セットの各行を出力することもできます。
コードをコピー
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb"); ($mysqli->errno == 0) //現(xiàn)在の接続が成功したかどうかを判斷します
{
$sql = "SELECT * FROM Student"
$result = $mysqli->query( $sql );
echo "Result row nums:".$result->num_rows."
"; //結(jié)果セットの數(shù)を表示します
//結(jié)果セットを繰り返します
($rowObject = $ result->fetch_object())
{
echo "$rowObject->id : $rowObject->name : $rowObject->age : $rowObject->address" ."
}
}
else
{
echo $mysqli->error; //現(xiàn)在のエラーメッセージを出力します
exit(); ??>}
?>
上記の例では、fetch_object メソッドを使用して、各行のデータをオブジェクトにカプセル化します。これにより、データベースがオブジェクトの屬性になり、オブジェクトの屬性名を呼び出すことで、対応するフィールド値を取得できます。たとえば、學(xué)生の名前 $rowObject->name を取得します。
① MYSQLI_ASSOC。 key がフィールド名、value がフィールド値である連想配列を返します。
②MYSQLI_NUM。クエリフィールドと同じ順序でインデックス配列を返します。
③MYSQLI_BOTH。連想配列とインデックス付き配列の両方を返します。デフォルト設(shè)定。
コードをコピー コードは次のとおりです。
while($row = $result- >fetch_array (MYSQLI_ASSOC)) //連想配列を返します{
echo $row['id']. $row['name'].$row['age'].$row['address' ]."
";
}
?>
または
コードをコピーしますコードは次のとおりです:
while($row = $result->fetch_array(MYSQLI_NUM)) //インデックス配列を返します{
echo $ row[0]. $ row[1].$row[2].$row[3]."
}
?>
3. メモリの解放
結(jié)果セット內(nèi)のデータ量が膨大であり、使用されている場合は、結(jié)果セット オブジェクトの free メソッドを使用して、結(jié)果セットによって占有されているメモリを解放します。 free メソッドが呼び出されると、結(jié)果セットは使用できなくなります。
コードをコピー コードは次のとおりです:
...$result -> free(); //メモリを解放します
4. mysqliのクエリメソッドを使用します。オブジェクトは引き続き実行できます。データベースの追加、変更、および削除の操作は、単なる別の SQL ステートメントです。例としてデータの追加を考えてみましょう:
コードをコピー
コードは次のとおりです:
$mysqli = new mysqli("localhost","root",""); $mysqli->select_db("mydb"); if($mysqli->errno == 0) //現(xiàn)在の接続が成功したかどうかを確認(rèn)します
{$sql = "INSERT INTO Student(id,name,age,address) VALUES('8','kay','23','xian')";
$result = $mysqli->query($sql);
echo $mysqli->affected_rows; //影響を受ける行の數(shù)を出力します
}
else
{
echo $mysqli-> //現(xiàn)在のエラーメッセージを出力します。
mysqli オブジェクトのaffected_rows 屬性を呼び出します。影響を受ける行の數(shù)を取得できます。
5. データベース接続を閉じる
データベース接続の使用が終了したら、mysqli オブジェクトの close メソッドを呼び出して閉じます。
コードは次のとおりです:
...
$mysqli -> close(); ?> PHP のバインド パラメータは Java の前処理 SQL と同じです。原則として、SQL を繰り返し実行する場合、SQL のパラメーターが不規(guī)則な場合、バインディング パラメーター メソッドを使用して SQL の実行速度を向上させることができます。
コードをコピー
コードは次のとおりです:
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb"); ($mysqli->errno == 0) //現(xiàn)在の接続が成功したかどうかを判斷します
{
$sql = "INSERT INTO Student(id,name,age,address) VALUES(?,?,? ,? )";
$stmt = $mysqli->stmt_init(); //前処理オブジェクトを作成
$stmt->prepare($sql); //SQL の前処理
$stmt -> ;bind_param("isis",$id,$name,$age,$address); //バインドされた変數(shù)の最初のパラメータを変數(shù)
for($i = 12;$i<; 100;$i )
{
$id = $i 1;
$age = "xian"; >$stmt->execute(); //SQL ステートメントを?qū)g行します
}
echo $mysqli->affected_rows; //影響を受ける行數(shù)を出力します
$stmt->close(); //前処理オブジェクトが占有しているメモリを解放します
$mysqli->close(); //データベース接続を閉じます
}
else
{
echo $mysqli->error ; / /現(xiàn)在のエラーメッセージを出力します
exit();
?>
bind_param メソッドの最初のパラメータは次の変數(shù)を指定することに注意してくださいデータ型、これらのデータ型は次のとおりです:
① i: すべての整數(shù)型。
② d: すべての double 型と float 型。
③ b:ブロブタイプ。
7. 結(jié)果バインディング
結(jié)果バインディングは、クエリ結(jié)果といくつかの変數(shù)をバインドするために使用されます。
コードをコピー
コードは次のとおりです:
$mysqli = new mysqli("localhost "," root",""); $mysqli->select_db("mydb");
if($mysqli->errno == 0) //現(xiàn)在の接続が成功したかどうかを判斷します{
$sql = "SELECT * FROM Student";
$stmt = $mysqli->stmt_init(); //前処理オブジェクトを作成します
$stmt->prepare($sql); //SQL の場合、前処理を?qū)g行します
$stmt->bind_result($id,$name,$age,$address); //クエリ結(jié)果フィールドを変數(shù)にバインドします
$stmt->execute(); / /SQL ステートメントを?qū)g行します
while($stmt->fetch()) //フェッチ メソッドを使用して結(jié)果セットの各行を取得し、対応するフィールド値を変數(shù)に割り當(dāng)てます
{
echo "$id : $name : $age : $address"."
";
}
$stmt->close(); // 前処理オブジェクトによって占有されているメモリを解放します
$mysqli-> ;close(); //データベース接続を閉じます
}
else
{
echo $mysqli->error; //現(xiàn)在のエラーメッセージを出力します
exit ();
}
?>

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

n 1クエリの問題を避け、関連するデータを事前にロードすることにより、データベースクエリの數(shù)を減らします。 2.必要なフィールドのみを選択して、メモリと帯域幅を保存するために完全なエンティティをロードしないようにします。 3. DoctrineのセカンダリキャッシュやRedis Cacheの高周波クエリ結(jié)果など、キャッシュ戦略を合理的に使用します。 4.エンティティのライフサイクルを最適化し、クリア()を定期的に呼び出してメモリを解放してメモリオーバーフローを防ぎます。 5.データベースインデックスが存在し、生成されたSQLステートメントを分析して、非効率的なクエリを避けます。 6.変更が不要なシナリオで自動変更追跡を無効にし、パフォーマンスを改善するためにアレイまたは軽量モードを使用します。 ORMを正しく使用するには、SQLモニタリング、キャッシュ、バッチ処理、適切な最適化を組み合わせて、開発効率を維持しながらアプリケーションのパフォーマンスを確保する必要があります。

settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設(shè)定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設(shè)定

PHPのゴミ収集メカニズムは參照カウントに基づいていますが、周期的な円形のゴミコレクターによって円形の參照を処理する必要があります。 1。変數(shù)への參照がない場合、參照カウントはすぐにメモリを解放します。 2.參照參照により、メモリを自動的にリリースできなくなり、GCを検出およびクリーニングすることがGCに依存します。 3。GCは、「可能なルート」ZVALがしきい値に到達(dá)するか、GC_COLLECT_CYCLES()を手動で呼び出すとトリガーされます。 4.長期実行PHPアプリケーションは、メモリの漏れを避けるために、gc_status()を監(jiān)視し、gc_collect_cycles()を呼び出す必要があります。 5.ベストプラクティスには、gc_disable()を使用してパフォーマンスキー領(lǐng)域を最適化し、ormのclear()メソッドを介して繰り返しのオブジェクトを最適化する回路參照の回避が含まれます。

BREFにより、PHP開発者は、サーバーを管理せずにスケーラブルで費(fèi)用対効果の高いアプリケーションを構(gòu)築できます。 1.Brefは、最適化されたPHPランタイムレイヤーを提供し、PHP8.3およびその他のバージョンをサポートし、LaravelやSymfonyなどのフレームワークとシームレスに統(tǒng)合することにより、PHPをAwslambdaにもたらします。 2。展開手順には、次のものが含まれます。Composerを使用してBREFのインストール、httpエンドポイントや職人コマンドなどの関數(shù)とイベントを定義するためにserverless.ymlの構(gòu)成。 3. serverlessdeployコマンドを?qū)g行して、展開を完了し、Apigatewayを自動的に構(gòu)成し、アクセスURLを生成します。 4。Lambdaの制限については、Brefは解決策を提供します。

readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.

usearestapitobridgephpandmlmodelsbyrunningthemodelinpythonviaflaskorapiandapiandcallingtfromphpusingcurlorguzzle.2.runpythosscriptsdirectlyfrompurspusingec()orshell_exec()

まず、JavaScriptを使用して、ユーザーシステムの設(shè)定とローカルに保存されたテーマ設(shè)定を取得し、ページテーマを初期化します。 1. HTML構(gòu)造には、トピックの切り替えをトリガーするボタンが含まれています。 2。CSSの使用:rootは明るいテーマ変數(shù)を定義し、.dark-modeクラスは暗いテーマ変數(shù)を定義し、これらの変數(shù)をvar()を介して適用します。 3. JavaScript検出は、カラーのスchemeを好み、LocalStorageを読み取り、最初のテーマを決定します。 4.ボタンをクリックするときにHTML要素のダークモードクラスを切り替え、現(xiàn)在の狀態(tài)をLocalStorageに保存します。 5.すべての色の変更には、ユーザーを強(qiáng)化するために0.3秒の移行アニメーションが伴います

シーダーファイルの作成:phpartisanmake:seederuserseederを使用してシーダークラスを生成し、実行方法のモデルファクトリーまたはデータベースクエリを介してデータを挿入します。 2。Databaseseederで他のシーダーを呼び出す:sulderseeder、Postseederなどを登録$ this-> call()を介して依存関係が正しいことを確認(rèn)します。 3。シーダーの実行:PHPARTISANDBを?qū)g行する:種子をすべて登録したすべてのシーダーを?qū)g行するか、PHPARTISANMIGRATE:FRESS-シードを使用してデータをリセットして補(bǔ)充します。 4
