swoole的非同步mysql操作 swoole_mysql
阿新 • • 發佈:2018-12-17
非同步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 ) )
小總結:非同步操作資料庫內容會在最後被執行,可以運用到頁面記錄訪問了等操作。 非同步執行操作資料記錄,既不影響使用者的訪問速度,又把統計給做了,豈不是美滋滋!