[PHP]はデータベースに接続するMySQLiを方法、CRUDを使用

1.新しい接続オブジェクトを作成
  接続を作成するために、1)
  接続が成功したか否かを判断する)2:connect_errnoは、エラーコードによって決定
    何ら問題connect_errno === 0が存在しない場合、それ以外の場合はエラーメッセージconnect_errorある
  コード形式のUTF-8中国語エンコードさを設定する)3。

  4)リターン接続オブジェクト

<?php
	function initMysqli(){
		//创建连接:参数1:主机地址   2:数据库用户名  3:用户密码  4:数据库
		$mysqli = new mysqli("localhost","root","","20170922");
		//判断连接是否成功
		if($mysqli->connect_errno){
			die($mysqli->connect_error);
		}
		//设置编码
		$mysqli->set_charset("utf8");
		return $mysqli;
	} 
?>


2. CRUD

1.操作:

 1)パッケージinitMysqli介して()メソッドは、新しい接続オブジェクトを作成します

 2)()オブジェクトによって、クエリで、この方法は、SQL文を実行し、関数が結果がfalse、正常に返さクエリオブジェクトの情報を返すために失敗した戻ります

 3)パラメータ2及び図3に示すように、以下のパラメータ、すなわち機能を正常に実行した結果かどうかを決定し、適切なコールバック関数を呼び出すことにより

   あなたが失敗した場合に、コールバック関数のパラメータ2に成功した呼び出しを実行した場合、コールバック関数のパラメータを呼び出し、3

 4)接続を閉じます

<?php
	function insertData($sql,$success=null,$fail=null){
		$mysqli = initMysqli();
		$res = $mysqli->query($sql);//执行sql语句
		if($res){
			//参数2,3如果在调用时没有指定默认为null,执行会出错,所以要先判断是否指定
			if($success){
				//insert_id:新用户的id:一般id设置为自增,由数据库自动赋值
				//将执行后信息,保存到自定义的关联数组中
				$sInfo = array('id' =>$mysqli->insert_id,"msg"=>"注册成功","code"=>0);
				//将该关联数组作为回调函数的参数
				$success($sInfo);//调用参数2的回调函数
			}
		}else{
			if($fail){
				$fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
				$fail($fInfo);
			}
		}
		$mysqli->close();
	}
	//调用方法演示:
	$username = "张三";
	//变量外要加引号
	$sql = "INSERT INTO user (username,password,gender) VALUES ('{$username}','000','男')";
	insertData($sql,function($response){
		print_r($response);
	},function($err){
		print_r($err);
	});
?>

2. [変更更新:
 affected_rows:影響を受けた行数

 更新操作が成功した後、影響を受けた行の数が0である場合、修正に相当するものがないため、影響を受けた行の数を決定します

<?php 
	function updateData($sql,$success=null,$fail=null){
		$mysqli = initMysqli();
		$res = $mysqli->query($sql);
		if($res){
			if($success){
				//两种情况:1. 确实更新  2:本次更改和之前没区别
				$sInfo = array('affected_rows' =>$mysqli->affected_rows,"msg"=>"更新成功","code"=>0);
				$success($sInfo);
			}
		}else{
			if($fail){
				$fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
				$fail($fInfo);
			}
		}
		$mysqli->close();
	}
	//调用方法演示
	$sql = "UPDATE user SET gender = '女' WHERE id > 20"; 
	updateData($sql,function($res){
		print_r($res);
	},function($err){
		print_r($err);
	});
?>

3.削除操作:また、それが更新されているかどうかを決定する必要があります削除

<?php   
	function deleteData($sql,$success=null,$fail=null){
		$mysqli = initMysqli();
		$res = $mysqli->query($sql);
		if($res){
			if($success){ 
				$sInfo = array('affected_rows' =>$mysqli->affected_rows,"msg"=>"删除成功","code"=>0);
				$success($sInfo);
			}
		}else{
			if($fail){
				$fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
				$fail($fInfo);
			}
		}
		$mysqli->close();
	} 
?>

4.クエリ:

 NUM_ROWS:特定の番号への問い合わせ

 $ RES-> FETCH_ASSOC():現在の行の値が連想配列の形で返し、ハンドルの動きに追従するために、問い合わせのすべての行に、次の時間は、クエリは、クエリの最後まで、次の行で発見されます

<?php  
	 function selectData($sql,$success=null,$fail=null){
	 	$mysqli = initMysqli(); 
		$res = $mysqli->query($sql);	 
		if($res && $res->num_rows){
			$res->data_seek(0);//将句柄移动到开始位置
			//只要查询到的当前行不为空,就将数据存放在data数组中
			while ($row = $res->fetch_assoc()){
				$data[]=$row;
			} 
			if($success){ 
				$sInfo = array('data' =>$data,"msg"=>"查询成功","code"=>0);
				$success($sInfo);
			} 
		}else{
			if($fail){
				$fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
				$fail($fInfo);
			}
		}	
		$mysqli->close(); 
	 }
?>




公開された22元の記事 ウォンの賞賛3 ビュー10000 +

おすすめ

転載: blog.csdn.net/floracuu/article/details/78131753