slam / mysql-php
PHP version of mysql cli that comes with MySQL
Fund package maintenance!
Slamdunk
paypal.me/filippotessarotto
Installs: 22 289
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 0
Open Issues: 4
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-04-24 10:05:31 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
mysql
client
Performance
Speed is exactly the same of the original mysql
binary thanks to streams usage.
Supported formats
Input type | Example | Supported? |
---|---|---|
mysqldump output |
as is | ✔️ |
Single query on single line | SELECT NOW(); |
✔️ |
Single query on multiple lines | SELECT NOW(); |
✔️ |
Multiple queries on separated single or multiple lines | SELECT NOW(); SELECT NOW(); |
✔️ |
Multiple queries on single line | SELECT NOW();SELECT NOW(); |
❌ |
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:
mysqldump
binary port in pure PHP