slam / mysql-php
MySQL附带的mysql cli的PHP版本
v1.1.0
2023-01-04 10:23 UTC
Requires
- php: ~8.1.0 || ~8.2.0
- ext-mysqli: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.13.2
- phpstan/phpstan: ^1.9.6
- phpstan/phpstan-phpunit: ^1.3.3
- phpstan/phpstan-strict-rules: ^1.4.4
- phpunit/phpunit: ^9.5.27
This package is auto-updated.
Last update: 2024-09-20 16:16:17 UTC
README
MySQL附带的mysql cli的PHP轻量级版本。
为什么
- 您处于仅PHP的环境中,例如PHP Docker镜像
- 您需要导入大量的mysql dump
- 您无法访问本地的
mysql
客户端
性能
由于使用了流,速度与原始的mysql
二进制文件完全相同。
支持的格式
用法
库提供了两种用法,二进制和\SlamMysql\Mysql
类。
从CLI
$ ./mysql -h
Usage: mysql [OPTIONS]
--host Connect to host [Default: INI mysqli.default_host]
--port Port number [Default: INI mysqli.default_port]
--username User for login [Default: INI mysqli.default_user]
--password Password to use [Default: INI mysqli.default_pw]
--database Database to use [Default: empty]
--socket The socket file [Default: INI mysqli.default_socket]
$ printf "CREATE DATABASE foobar;\nSHOW DATABASES;" | ./mysql
information_schema
foobar
mysql
performance_schema
sys
$ ./mysql --database foobar < foobar_huge_dump.sql
从PHP
$mysql = new \SlamMysql\Mysql('localhost', 'root', 'pwd', 'my_database', 3306, '/socket'); $return = $mysql->run(\STDIN, \STDOUT, \STDERR); exit((int) (true !== $return));
\SlamMysql\Mysql::run
接受任何可以被fgets/fwrite
函数消费的资源类型。
相关项目
- ifsnop/mysqldump-php: 纯PHP中的
mysqldump
二进制端口