slam / mysql-php
PHP version of mysql cli that comes with MySQL
                                    Fund package maintenance!
                                                                            
                                                                                                                                        Slamdunk
                                                                                    
                                                                            
                                                                                                                                        paypal.me/filippotessarotto
                                                                                    
                                                                
Installs: 24 136
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 0
Open Issues: 4
pkg:composer/slam/mysql-php
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-10-20 16:31:24 UTC
README
PHP light version of mysql cli that comes with MySQL.
Why
- You are inside a PHP only environment, like a PHP Docker image
- You need to import a large mysql dump
- You don't have access to the native mysqlclient
Performance
Speed is exactly the same of the original mysql binary thanks to streams usage.
Supported formats
Usage
The library provides two usages, the binary and the \SlamMysql\Mysql class.
From 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
From 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 accepts any type of resource consumable by fgets/fwrite functions.
Related projects
- ifsnop/mysqldump-php: mysqldumpbinary port in pure PHP