実は、今日は欲望がありません..-MySQLi、欲望..-MySQLi
こんにちは
昼は泳いでスッキリしましたが、午後はワンパンマンを見てからは勉強する気も起きなくなりました。 。 。何かを更新して、後で本を読むように自分に課してください。
1.MySQLi
2. MySQLi OOP ベースのプログラミング
2.1 分析を使用する
--基本
MySQLi は拡張クラス ライブラリであり、本質的にはクラス(?)です。
一般的なプロセスは MySQL と同じです: 接続、ライブラリの選択、文字セットの設定、SQL ステートメントの実行、接続の終了。
--リンクライブラリの例
/*
* データベースに接続して選択します
*/
$mysqli=new mysqli('localhost', 'root', '');
print_r($mysqli);echo "< ;br/>";
echo $mysqli->select_db('test');echo "
";
$mysqli2=new mysqli();
print_r($mysqli2->connect('localhost', 'root', ''));echo "
";
print_r($mysqli3=new mysqli('localhost', 'root', '','test'));echo "
";
ここでのメソッドはすべて mysqli のクラス属性を使用して実行されます。もちろん、mysqli コマンドを使用してリンクすることもできます。
$con=mysqli_connect(ホスト,ユーザー名,パスワード)
結果にはいくつかの情報があります
mysqliオブジェクト
|
| (
|
| [影響を受ける行数] => 0
|
| [client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $
|
| [クライアントのバージョン] => 50011
|
| [connect_errno] => 0
|
| [接続エラー] =>
|
| [エラー番号] => 0
|
| [エラー] =>
|
| [error_list] => 配列
|
| (
|
| )
|
|
|
| [フィールド数] => 0
|
| [host_info] => TCP/IP 経由のローカルホスト
|
| [情報] =>
|
| [insert_id] => 0
|
| [サーバー情報] => 5.6.17
|
| [サーバーのバージョン] => 50617
|
| [stat] => 稼働時間: 968 スレッド: 1 質問: 24 スロークエリ: 0 オープン: 70 フラッシュテーブル: 1 オープンテーブル: 63 クエリ/秒平均: 0.024
|
| [sqlstate] => 00000
|
| [プロトコルのバージョン] => 10
|
| [スレッドID] => 11
|
| [警告数] => 0
|
| )
|
これらのプロパティは、
などのオブジェクトのプロパティを通じて取得できます。
echo $mysqli->client_info;echo "
";
または、対応する方法で入手できます。これらの内容はマニュアルで確認できます。
header('content-type:text/html;charset=utf-8');
//1. MySQL データへの接続を確立します
// $mysqli=new mysqli('localhost',' root','root');
// //print_r($mysqli);
// //2. 指定されたデータベースを開きます
// $mysqli->select_db('test');
// $mysqli =new mysqli();
// $mysqli->connect('127.0.0.1','root','root');
// print_r($mysqli);
//接続の確立中に指定されたデータベースを開きます
$mysqli=@new mysqli('localhost','root','root','test');
//print_r($mysqli);
//$mysqli - >connect_errno: 接続によって生成されたエラー番号を取得します
//$mysqli->connect_error: 接続によって生成されたエラーメッセージを取得します
if($mysqli->connect_errno){
die('接続エラー:' .$mysqli-> ;connect_error);
}
print_r($mysqli);
echo '
';
echo 'クライアント情報:'.$mysqli->client_info.'
';
echo $mysqli->get_client_info().'
';
echo 'クライアントバージョン:'.$mysqli->client_version.'
';
echo '
';
echo 'サーバー側情報: '.$mysqli->server_info.'
';
echo $mysqli->get_server_info();
echo '< ;hr/>';
echo 'サーバーバージョン:'.$mysqli->server_version.'
';
エコー '
';
--文字セットの例
//1. MySQL への接続を確立します
$mysqli=@new mysqli('localhost','root','root','test');
if($mysqli->connect_errno) {
die('接続エラー:'.$mysqli->connect_error);
}
//2.デフォルトのクライアントエンコーディング utf8 を設定します
$mysqli->set_charset('utf8');
//3. SQL クエリを実行します
$sql=<< CREATE TABLE IF NOT EXISTS mysqli(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL
);
EOF;
$ res=$mysqli->query($sql);
var_dump($res);
/*
SELECT/DESC/DESCRIBE/SHOW/EXPLAIN は、実行が成功した場合は mysqli_result オブジェクトを返し、実行が失敗した場合は false を返します
他の SQL ステートメントの実行では、実行が成功した場合は true が返され、それ以外の場合は false が返されます
*/
//接続を閉じます
$mysqli ->close();
データベースは utf-8 ではなく utf8 であることに注意してください。
2.2 レコードの挿入操作
増加します。
--connect.php
データベースに接続する一連の操作はよく使われるため、これをカプセル化してどこでも呼び出すというシンプルな方法です。
require_once 'connect.php';
connect.php
/*
*
接続およびライブラリ選択 (ヘッダー) ファイル */
$mysqli=new mysqli('localhost', 'root', '','test');
if($ mysqli->connect_errno){
die('接続エラー:'.$mysqli->connect_error);
}else{
echo 'クライアント情報:'.$mysqli->client_info.'
}
$mysqli->set_charset('utf8');
--増加
/*
* データベースにデータを挿入します
*/
require_once 'connect.php';
$sql="insert mysqli(username) value('Tom')";
echo $mysqli->query($sql);
ここで実行されるのは単一の SQL ステートメントです。
もしくは少し改良して判定を追加してエラー情報を出力します。
if($res){ echo $mysqli->insert_id;
}else{
echo 'ERROR '.$mysqli->error;
}
または、複数のレコードを挿入します
$sql="mysqli(ユーザー名) 値を挿入('Sdaf'),('Andy')";
2.3更新記録
更新されました。
$sql="更新テスト セット id=id+10";$mysqli->query($sql);
2.4 削除
削除
$sql="id>=2 の mysqli から削除";
---
特別な注意として、affected_rows によって返される状況は 3 つあります:
-1 SQL ステートメントに問題があります。
0 影響を受けるステートメントはありません。
>=0 影響を受けるアイテムの数。
--概要
header('content-type:text/html;charset=utf-8');$mysqli=new mysqli('localhost','root','root','test');
if($mysqli->connect_errno){
die('CONNECT ERROR:'.$mysqli->connect_error);
}
$mysqli->set_charset('utf8');
//SQL クエリを実行します
//レコードを追加します
//単一の SQL ステートメントを実行します。実行できる SQL ステートメントは 1 つだけです
// $sql="INSERT user(username,password) VALUES('king','king' ); ";
// $sql.="DROP TABLE ユーザー;";
$sql="INSERT user(ユーザー名,パスワード) VALUES('queen1','queen1'),('queen2','queen2') ,( 'queen3','queen3'),('queen4','queen4')";
$res=$mysqli->query($sql);
if($res){
//前の値を取得insert 操作 生成された AUTO_INCREMENT の値
echo '登録が成功しました。あなたは Web サイトの '.$mysqli->insert_id.' ユーザーです
';
// によって生成された影響を受けるレコード ストリップを取得します前のステップ Number
echo 'There are'.$mysqli->affected_rows.' レコードが影響を受けます';
}else{
//前の操作で生成されたエラー番号とエラー メッセージを取得します
echo 'ERROR '.$ mysqli->errno .':'.$mysqli->error;
}
echo '
';
//テーブルの年齢に 10 を追加します
$sql="UPDATE user SET age=age+10";
$res=$mysqli->query($sql);
if($res){
echo $mysqli ->affected_rows.'レコードが更新されました';
}else{
echo "エラー ".$mysqli->errno.':'.$mysqli->error;
}
echo '
//テーブル内の id<=6 のユーザーを削除します
$sql="DELETE FROM user WHERE id<=6";
$res=$mysqli->query($sql);
if($res) {
echo $mysqli->affected_rows.'レコードが削除されました';
}else{
echo "ERROR ".$mysqli->errno.':'.$mysqli->error;
}
// を閉じますMySQL への接続
$mysqli->close();
2.5チェック
select が使用されているため、結果セットが返され、印刷可能な print_r または var_dump であることに注意してください。
ここでは、返された結果セットの選択について説明します。
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','root','test');
if($mysqli->connect_errno){
die('CONNECT ERROR:'.$mysqli->connect_error);
}
$mysqli->set_charset('utf8');
$sql="SELECT id,ユーザー名,年齢 FROM ユーザー";
$mysqli_result=$mysqli->query($sql);
//var_dump($mysqli_result);
if($mysqli_result && $mysqli_result->num_rows>0){
//echo $mysqli_result->num_rows;
//$rows=$mysqli_result->fetch_all();//結果セット内のすべてのレコードを取得します。デフォルトの戻り値は 2 次元です
//次の形式で返されますインデックス + インデックスの合計
//$rows=$mysqli_result->fetch_all(MYSQLI_NUM);
//$rows=$mysqli_result->fetch_all(MYSQLI_ASSOC);
//$rows=$mysqli_result->fetch_all(MYSQLI_BOTH) );
// $row=$mysqli_result->fetch_row();// 結果セット内のレコードを取得し、インデックス配列として返します
// print_r($row);
// echo '< ;hr/>gt;';
// $row=$mysqli_result->fetch_assoc();//結果セット内のレコードを取得し、連想配列として返します
// print_r($row);
// echo '
';
// $row=$mysqli_result->fetch_array();//両方
// print_r($row);
// echo '
// $row=$mysqli_result->fetch_array(MYSQLI_ASSOC);
// print_r($row);
// echo '
';
// $row=$mysqli_result->fetch_object ();
// print_r($row);
// echo '
';
// //結果セットの内部ポインタを移動します
/ / $mysqli_result->data_seek(0);
// $row=$mysqli_result->fetch_assoc();
// print_r($row);
// print_r($rows);
while($row=$mysqli_result->fetch_assoc()){
//print_r($row);
//echo '
';
$rows[]=$row;
}
print_r($rows);
//結果セットを解放します
$mysqli_result->free();
}else{
echo 'クエリエラーまたは結果セットにレコードがありません';
}
$mysqli ->close();
http://www.bkjia.com/PHPjc/1079207.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/1079207.html技術記事実は今日はやる気がありません… - MySQLi、欲望… - MySQLi こんにちは お昼は爽やかに泳ぎましたが、午後にワンパンマンを見終わった後は学習意欲がなくなりました。 。 。無理して…