1. 程式人生 > >swoole的非同步mysql操作 swoole_mysql

swoole的非同步mysql操作 swoole_mysql

非同步mysql:swoole_mysql

class AsyncMysql{

	public $dbSource = '';
	public $dbConfig = '';

	public function __construct(){
		$this->dbSource = new Swoole\Mysql;
		$this->dbConfig= [
			'host'=>'127.0.0.1',
			"port"=>3306,
			"user"=>"root",
			"password"=>"root",
			"database"=>"test",
			"charset"=>'utf8',
		];
	}

	public function update(){

	}

	public function add(){
	
	}

	public function execute($id,$mark){
	    $this->dbSource->connect($this->dbConfig,function($db,$result){
                echo 'mysql Connect'.PHP_EOL;  
		 if($result === false){
                            var_dump($db->connect_error);
                            exit;
                   }
  
                   $sql = 'select * from test';
                   $db->query($sql,function($db,$result){
              	     if($result ===false){
                              echo 'query false';
                	 }elseif($result ===true){
                              echo 'query ok';
                  	 }else{
                              print_r($result);
                  	 }
                   $db->close();
              });
           });
	return true;

	}

}


$my = new AsyncMysql();

$res = $my->execute(1,1);
var_dump($res);
echo 'this is ok?';


執行結果:

這bool(true) this is ok?mysql Connect Array ( [0] => Array ( [mark] => 520 [victory] => a ) [1] => Array ( [mark] => 519 [victory] => a ) )

小總結:非同步操作資料庫內容會在最後被執行,可以運用到頁面記錄訪問了等操作。 非同步執行操作資料記錄,既不影響使用者的訪問速度,又把統計給做了,豈不是美滋滋!