mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
mysqlnd supports INIT_COMMAND and so we can add it to PDO_MYSQL @ mysqlnd
This commit is contained in:
parent
ac93b60f68
commit
381ebe751b
4 changed files with 11 additions and 20 deletions
|
@ -620,8 +620,9 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
|
|||
if (driver_options) {
|
||||
long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30 TSRMLS_CC);
|
||||
long local_infile = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0 TSRMLS_CC);
|
||||
char *init_cmd = NULL;
|
||||
#ifndef PDO_USE_MYSQLND
|
||||
char *init_cmd = NULL, *default_file = NULL, *default_group = NULL;
|
||||
char *default_file = NULL, *default_group = NULL;
|
||||
long compress = 0;
|
||||
#endif
|
||||
H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 1 TSRMLS_CC);
|
||||
|
@ -670,7 +671,6 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
|
|||
mysql_options(H->server, MYSQL_OPT_RECONNECT, (const char*)&reconnect);
|
||||
}
|
||||
#endif
|
||||
#ifndef PDO_USE_MYSQLND
|
||||
init_cmd = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_INIT_COMMAND, NULL TSRMLS_CC);
|
||||
if (init_cmd) {
|
||||
if (mysql_options(H->server, MYSQL_INIT_COMMAND, (const char *)init_cmd)) {
|
||||
|
@ -680,7 +680,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
|
|||
}
|
||||
efree(init_cmd);
|
||||
}
|
||||
|
||||
#ifndef PDO_USE_MYSQLND
|
||||
default_file = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_READ_DEFAULT_FILE, NULL TSRMLS_CC);
|
||||
if (default_file) {
|
||||
if (mysql_options(H->server, MYSQL_READ_DEFAULT_FILE, (const char *)default_file)) {
|
||||
|
|
|
@ -75,9 +75,9 @@ static PHP_MINIT_FUNCTION(pdo_mysql)
|
|||
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_USE_BUFFERED_QUERY", (long)PDO_MYSQL_ATTR_USE_BUFFERED_QUERY);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_LOCAL_INFILE", (long)PDO_MYSQL_ATTR_LOCAL_INFILE);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_INIT_COMMAND", (long)PDO_MYSQL_ATTR_INIT_COMMAND);
|
||||
#ifndef PDO_USE_MYSQLND
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_MAX_BUFFER_SIZE", (long)PDO_MYSQL_ATTR_MAX_BUFFER_SIZE);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_INIT_COMMAND", (long)PDO_MYSQL_ATTR_INIT_COMMAND);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_FILE", (long)PDO_MYSQL_ATTR_READ_DEFAULT_FILE);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_GROUP", (long)PDO_MYSQL_ATTR_READ_DEFAULT_GROUP);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_COMPRESS", (long)PDO_MYSQL_ATTR_COMPRESS);
|
||||
|
|
|
@ -153,8 +153,8 @@ extern struct pdo_stmt_methods mysql_stmt_methods;
|
|||
enum {
|
||||
PDO_MYSQL_ATTR_USE_BUFFERED_QUERY = PDO_ATTR_DRIVER_SPECIFIC,
|
||||
PDO_MYSQL_ATTR_LOCAL_INFILE,
|
||||
#ifndef PDO_USE_MYSQLND
|
||||
PDO_MYSQL_ATTR_INIT_COMMAND,
|
||||
#ifndef PDO_USE_MYSQLND
|
||||
PDO_MYSQL_ATTR_READ_DEFAULT_FILE,
|
||||
PDO_MYSQL_ATTR_READ_DEFAULT_GROUP,
|
||||
PDO_MYSQL_ATTR_MAX_BUFFER_SIZE,
|
||||
|
|
|
@ -6,8 +6,6 @@ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
|
|||
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
|
||||
MySQLPDOTest::skip();
|
||||
$db = MySQLPDOTest::factory();
|
||||
if (MySQLPDOTest::isPDOMySQLnd())
|
||||
die("skip PDO::MYSQL_ATTR_MAX_INIT_COMMAND not supported with mysqlnd");
|
||||
?>
|
||||
--INI--
|
||||
error_reporting=E_ALL
|
||||
|
@ -27,7 +25,8 @@ error_reporting=E_ALL
|
|||
var_dump($create);
|
||||
$db = new PDO($dsn, $user, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => $create));
|
||||
|
||||
var_dump($db->errorInfo());
|
||||
$info = $db->errorInfo();
|
||||
var_dump($info[0]);
|
||||
|
||||
$db->exec(sprintf('INSERT INTO %s(id) VALUES (1)', $table));
|
||||
$stmt = $db->query(sprintf('SELECT id FROM %s', $table));
|
||||
|
@ -35,22 +34,14 @@ error_reporting=E_ALL
|
|||
|
||||
$db->exec(sprintf('DROP TABLE IF EXISTS %s', $table));
|
||||
print "done!\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(58) "CREATE TABLE test_%s(id INT)"
|
||||
array(3) {
|
||||
[0]=>
|
||||
string(5) "00000"
|
||||
[1]=>
|
||||
NULL
|
||||
[2]=>
|
||||
NULL
|
||||
}
|
||||
%unicode|string%(58) "CREATE TABLE test_%s(id INT)"
|
||||
%unicode|string%(5) "00000"
|
||||
array(1) {
|
||||
[0]=>
|
||||
array(1) {
|
||||
["id"]=>
|
||||
string(1) "1"
|
||||
[%u|b%"id"]=>
|
||||
%unicode|string%(1) "1"
|
||||
}
|
||||
}
|
||||
done!
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue