Skip to content

Instantly share code, notes, and snippets.

@CodeBrauer
Last active April 8, 2021 10:40
Show Gist options
  • Save CodeBrauer/76523d98061e83889913ce3379be5452 to your computer and use it in GitHub Desktop.
Save CodeBrauer/76523d98061e83889913ce3379be5452 to your computer and use it in GitHub Desktop.
mysql connect command to php array with keys
<?php
function mysql_command_to_values($input) {
$result = [];
$key_assignment_short = [
'D' => 'database',
'u' => 'username',
'p' => 'password',
'h' => 'host',
'P' => 'port',
];
$key_assignment_full = [
'database' => 'database',
'user' => 'username',
'password' => 'password',
'host' => 'host',
'port' => 'port',
];
$match_short_arg = preg_match_all('/-(.)\s?([^\s]+)/', trim($input), $out_short);
$match_full_arg = preg_match_all('/--(\b[^=]+)=(.+)/', trim($input), $out_full);
if ($match_full_arg !== 0) {
foreach ($out_full[2] as $key => $value) {
$result[ str_replace(array_keys($key_assignment_full), array_values($key_assignment_full), $out_full[1][$key]) ] = $value;
}
} else if ($match_short_arg !== 0) {
foreach ($out_short[2] as $key => $value) {
$result[ str_replace(array_keys($key_assignment_short), array_values($key_assignment_short), $out_short[1][$key]) ] = $value;
}
} else {
return false;
}
return $result;
}
mysql_command_to_values("mysql -D database_name -u username -pSecretPassword -h example.org");

returns:

array(4) {
  ["database"]=>
  string(13) "database_name"
  ["username"]=>
  string(8) "username"
  ["password"]=>
  string(14) "SecretPassword"
  ["host"]=>
  string(11) "example.org"
}
mysql_command_to_values("mysql
--database=database_name
--host=example.org
--user=username
--password=password");

returns:

array(4) {
  ["database"]=>
  string(13) "database_name"
  ["host"]=>
  string(11) "example.org"
  ["username"]=>
  string(8) "username"
  ["password"]=>
  string(8) "password"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment