ホームページ  >  記事  >  php教程  >  PHP5はMySQLデータベースの基本コードを操作します

PHP5はMySQLデータベースの基本コードを操作します

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

1. データベース接続を確立します

コードをコピーします コードは次のとおりです。


< ?php
$mysqli = new mysqli("localhost","root","","mydb");
?>


データベースを確立するには 4 つのパラメータが必要です接続。データベース アドレス、データベース アクセス ユーザー名、データベース アクセス パスワード、データベース名です。上記の mysqli オブジェクトのコンストラクター メソッドを使用してデータベース接続を確立するだけでなく、その connect メソッドを呼び出してデータベース接続を確立することもできます。

コードをコピー コードは次のとおりです。


$mysqli = new mysqli();
$mysqli->connect("localhost","root","","mydb");
?>


を介してデータ接続を確立することもできます。 mysqli オブジェクトの構築メソッドで、select_db メソッドを通じてアクセスするデータベースを指定します。

コードをコピー コードは次のとおりです:


$mysqli = new mysqli("localhost "," root","");
$mysqli->select_db("mydb");
?>


現在の接続のエラー番号を取得します。 mysqli オブジェクトの errno 属性。現在の接続にエラーがない場合、エラー番号は 0 として返されます。

コードをコピー コードは次のとおりです:


$mysqli = new mysqli("localhost "," root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //現在の接続が成功したかどうかを判断します
{
}
else
{
echo "接続がエラーです!"
}
?>;
Sure mysqli オブジェクトの error 属性を通じて現在の接続のエラー情報を取得し、エラーがない場合は "" を返します。



コードをコピー

コードは次のとおりです: $mysqli = new mysqli("localhost ","rootss","");

$mysqli->select_db("mydb");
if($mysqli->errno == 0) //現在の接続が成功したかどうかを判断します
{
}
else
{
echo $mysqli->error; // 現在のエラーメッセージを出力します
exit()>}
?>



2. データベースをクエリする

データベースをクエリするには、クエリ データベースの結果セットを返す mysqli オブジェクトの query メソッドを使用できます。
構文は次のとおりです: $mysqli->query (クエリ ステートメント、クエリ モード); クエリ モードは 2 つあります: ① MYSQLI_STORE_RESULT。結果をキャッシュされたセットとして返すということは、結果セット全体を一度にナビゲートできることを意味します。この設定がデフォルトです。結果セットはクエリされた後、メモリに格納されます。これは、結果セット内のデータ量が多い場合、より多くのメモリを占有することを意味します。ただし、このメソッドを使用すると、クエリによって返されるレコードの行数を簡単に確認したり、結果セットの特定の行にすぐにジャンプしたりすることができます。
② MYSQLI_USE_RESULT。結果セットをキャッシュされていないセットとして返します。これは、結果セットが必要に応じてデータベース サーバーからフェッチされることを意味し、より大きな結果セット データのパフォーマンスを向上させることができます。ただし、クエリ行数の取得など、結果セットに対する多くの操作は制限されます。



コードをコピー

コードは次のとおりです: $mysqli = new mysqli("localhost "," root","");

$mysqli->select_db("mydb");

if($mysqli->errno == 0) //現在の接続が成功したかどうかを判断します
{
$sql = "SELECT * FROM 学生";
$result = $mysqli->query($sql);
echo "結果の行番号:".$result->num_rows ."//結果セットを繰り返します
while(list($id,$name,$age,$address) = $result-> fetch_row())
{
echo "$id : $name : $age : $address"."
";
}
}
else
{
echo $mysqli-> //現在のエラーメッセージを出力します。


結果の fetch_row メソッドを使用します。結果セット内のデータの各行を取得する set オブジェクト、各行 データは連想配列であり、その中の各データは list メソッドを使用して出力されます。出力オブジェクトを使用して、結果セットの各行を出力することもできます。



コードをコピー

コードは次のとおりです:


$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb"); ($mysqli->errno == 0) //現在の接続が成功したかどうかを判断します
{
$sql = "SELECT * FROM Student"
$result = $mysqli->query( $sql );
echo "Result row nums:".$result->num_rows."
"; //結果セットの数を表示します
//結果セットを繰り返します
($rowObject = $ result->fetch_object())
{
echo "$rowObject->id : $rowObject->name : $rowObject->age : $rowObject->address" ."}
}
else
{
echo $mysqli->error; //現在のエラーメッセージを出力します
exit(); 🎜>}
?>


上記の例では、fetch_object メソッドを使用して、各行のデータをオブジェクトにカプセル化します。これにより、データベースがオブジェクトの属性になり、オブジェクトの属性名を呼び出すことで、対応するフィールド値を取得できます。たとえば、学生の名前 $rowObject->name を取得します。

fetch_array メソッドを使用して、データの各行を連想配列またはインデックス配列として返したり、連想配列とインデックス配列の両方を返したりすることもできます。 fetch_array メソッドの mode パラメータは、現在返される配列のモードを指定します:
① MYSQLI_ASSOC。 key がフィールド名、value がフィールド値である連想配列を返します。
②MYSQLI_NUM。クエリフィールドと同じ順序でインデックス配列を返します。
③MYSQLI_BOTH。連想配列とインデックス付き配列の両方を返します。デフォルト設定。


コードをコピー コードは次のとおりです。

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. メモリの解放
結果セット内のデータ量が膨大であり、使用されている場合は、結果セット オブジェクトの free メソッドを使用して、結果セットによって占有されているメモリを解放します。 free メソッドが呼び出されると、結果セットは使用できなくなります。

コードをコピー コードは次のとおりです:

...
$result -> free(); //メモリを解放します


4. mysqliのクエリメソッドを使用します。オブジェクトは引き続き実行できます。データベースの追加、変更、および削除の操作は、単なる別の SQL ステートメントです。例としてデータの追加を考えてみましょう:

コードをコピー
コードは次のとおりです:

$mysqli = new mysqli("localhost","root",""); $mysqli->select_db("mydb"); if($mysqli->errno == 0) //現在の接続が成功したかどうかを確認します

{

$sql = "INSERT INTO Student(id,name,age,address) VALUES('8','kay','23','xian')";
$result = $mysqli->query($sql);
echo $mysqli->affected_rows; //影響を受ける行の数を出力します
}
else
{
echo $mysqli-> //現在のエラーメッセージを出力します。


mysqli オブジェクトのaffected_rows 属性を呼び出します。影響を受ける行の数を取得できます。

5. データベース接続を閉じる

データベース接続の使用が終了したら、mysqli オブジェクトの close メソッドを呼び出して閉じます。


コードをコピー

コードは次のとおりです:
...

$mysqli -> close(); ?> PHP のバインド パラメータは Java の前処理 SQL と同じです。原則として、SQL を繰り返し実行する場合、SQL のパラメーターが不規則な場合、バインディング パラメーター メソッドを使用して SQL の実行速度を向上させることができます。




コードをコピー

コードは次のとおりです:


$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb"); ($mysqli->errno == 0) //現在の接続が成功したかどうかを判断します
{
$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); //バインドされた変数の最初のパラメータを変数
for($i = 12;$i<; 100;$i )
{
$id = $i 1;
$age = "xian"; >$stmt->execute(); //SQL ステートメントを実行します
}
echo $mysqli->affected_rows; //影響を受ける行数を出力します
$stmt->close(); //前処理オブジェクトが占有しているメモリを解放します
$mysqli->close(); //データベース接続を閉じます
}
else
{
echo $mysqli->error ; / /現在のエラーメッセージを出力します
exit();
?>


bind_param メソッドの最初のパラメータは次の変数を指定することに注意してくださいデータ型、これらのデータ型は次のとおりです:
① i: すべての整数型。
② d: すべての double 型と float 型。
③ b:ブロブタイプ。

④ s: 他のデータ型には文字列が含まれます。

7. 結果バインディング

結果バインディングは、クエリ結果といくつかの変数をバインドするために使用されます。


コードをコピー

コードは次のとおりです:

$mysqli = new mysqli("localhost "," root",""); $mysqli->select_db("mydb");

if($mysqli->errno == 0) //現在の接続が成功したかどうかを判断します

{
$sql = "SELECT * FROM Student";
$stmt = $mysqli->stmt_init(); //前処理オブジェクトを作成します
$stmt->prepare($sql); //SQL の場合、前処理を実行します
$stmt->bind_result($id,$name,$age,$address); //クエリ結果フィールドを変数にバインドします
$stmt->execute(); / /SQL ステートメントを実行します
while($stmt->fetch()) //フェッチ メソッドを使用して結果セットの各行を取得し、対応するフィールド値を変数に割り当てます
{
echo "$id : $name : $age : $address"."
";
}
$stmt->close(); // 前処理オブジェクトによって占有されているメモリを解放します
$mysqli-> ;close(); //データベース接続を閉じます
}
else
{
echo $mysqli->error; //現在のエラーメッセージを出力します
exit ();
}
?>


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