dump文件只导入指定的表_Swoole中异步文件系统IO及数据库操作

d7bbc354a18ddf0ac3287d2af24e3408.png

读取文件

$result = SwooleAsync::readfile(__DIR__."/1.txt", function($filename, $fileContent) {
    echo "filename:".$filename.PHP_EOL; // n rn
    echo "content:".$fileContent.PHP_EOL;
});
//__DIR__为魔术变量,表示当前目录
var_dump($result);
echo "start".PHP_EOL;

function 为回调函数,在读取完成后调用,一般为最后

此方法读取的文件大小不超过4M

超过,一般使用swoole_async_read(); 使用方法参照文档

特点,分段读取,异步非阻塞


写文件

$content = date("Ymd H:i:s").PHP_EOL;
swoole_async_writefile(__DIR__."/1.log", $content, function($filename){
    // todo
    echo "success".PHP_EOL;
}, FILE_APPEND);
// file_put_contents();
echo "start".PHP_EOL;

一般文件名相同会覆盖,需要设置相应的参数

写入信息也有限制,4M

动态查看日志

tail  –f  access.log

安装MySQL数据库

可参考:

https://blog.csdn.net/qq_38663729/article/details/79327305​blog.csdn.net

导入数据库采用此方法:

mysql -u 用户名 -p  数据库名 < 数据库名.sql
mysql -u abc -p abc < abc.sql
source 即可

删除数据库:

drop database [xxx]

class AysMysql {
    public $dbSource = "";
    public $dbConfig = [];
    public function __construct() {
        $this->dbSource = new swoole_mysql;
        $this->dbConfig = array(
            'host' => 'localhost',
            'user' => 'root',
            'password' => '12345678',
            'database' => 'swoole',
            'chatset' => 'utf8', //指定字符集
        );
    }
 
    public function update() {
 
    }  
 
    public function add() {
 
    }    
 
    /**
     *mysql 执行逻辑
     *@param $id
     *@param $username
     *@return bool
     */
     public function execute($id, $username) {
         //connect
         $this->dbSource->connect($this->dbConfig, function($db, $result) use($id, $username){
             if($result === false){
                 var_dump($db->connect_errno, $db->connect_error);
                 die;
                 // todo
             }
 
             // $sql = "select * from test where id=1";
             $sql = "update test set username = '".$username."' where id=".$id;
             //query
             $db->query($sql, function($db, $result) use($sql){
                 //select => result 返回的是 查询结果内容
                 if($result === false){
                     //todo
                     var_dump($db->error);
                     echo $sql;
                 }elseif($result === true){//add update delete 返回bool
                     var_dump($db->affected_rows);
                 }else{
                     print_r($result);
                 }
                 $db->close();
             });
           });
        return true;
     }
}

异步执行SQL语句

$obj = new AysMysql();
$flag = $obj->execute(1, 'chuangxiang');
var_dump($flag).PHP_EOL;
echo "start".PHP_EOL;

函数闭包内使用上一范围的变量

function() use($ws, $frame)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值