mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Merge branch 'PHP-7.4'
* PHP-7.4: Fix MySQL local infile / attr handling on big endian systems
This commit is contained in:
commit
a866ef88ed
4 changed files with 12 additions and 12 deletions
|
@ -2332,7 +2332,7 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
|
||||||
#if MYSQL_VERSION_ID >= 50107
|
#if MYSQL_VERSION_ID >= 50107
|
||||||
my_bool mode_b;
|
my_bool mode_b;
|
||||||
#endif
|
#endif
|
||||||
zend_ulong mode;
|
unsigned long mode;
|
||||||
zend_long attr;
|
zend_long attr;
|
||||||
void *mode_p;
|
void *mode_p;
|
||||||
|
|
||||||
|
@ -2375,7 +2375,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
|
||||||
{
|
{
|
||||||
MY_STMT *stmt;
|
MY_STMT *stmt;
|
||||||
zval *mysql_stmt;
|
zval *mysql_stmt;
|
||||||
zend_ulong value = 0;
|
unsigned long value = 0;
|
||||||
zend_long attr;
|
zend_long attr;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
@ -2392,7 +2392,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
|
||||||
if (attr == STMT_ATTR_UPDATE_MAX_LENGTH)
|
if (attr == STMT_ATTR_UPDATE_MAX_LENGTH)
|
||||||
value = *((my_bool *)&value);
|
value = *((my_bool *)&value);
|
||||||
#endif
|
#endif
|
||||||
RETURN_LONG((zend_ulong)value);
|
RETURN_LONG((unsigned long)value);
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
|
|
@ -328,8 +328,8 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
|
||||||
#if !defined(MYSQLI_USE_MYSQLND)
|
#if !defined(MYSQLI_USE_MYSQLND)
|
||||||
mysql->mysql->reconnect = MyG(reconnect);
|
mysql->mysql->reconnect = MyG(reconnect);
|
||||||
#endif
|
#endif
|
||||||
|
unsigned int allow_local_infile = MyG(allow_local_infile);
|
||||||
mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&MyG(allow_local_infile));
|
mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&allow_local_infile);
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (!mysqli_resource) {
|
if (!mysqli_resource) {
|
||||||
|
|
|
@ -1796,8 +1796,8 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_set)(MYSQLND_STMT * const s,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case STMT_ATTR_CURSOR_TYPE: {
|
case STMT_ATTR_CURSOR_TYPE: {
|
||||||
unsigned int ival = *(unsigned int *) value;
|
unsigned long ival = *(unsigned long *) value;
|
||||||
if (ival > (zend_ulong) CURSOR_TYPE_READ_ONLY) {
|
if (ival > (unsigned long) CURSOR_TYPE_READ_ONLY) {
|
||||||
SET_CLIENT_ERROR(stmt->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "Not implemented");
|
SET_CLIENT_ERROR(stmt->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "Not implemented");
|
||||||
DBG_INF("FAIL");
|
DBG_INF("FAIL");
|
||||||
DBG_RETURN(FAIL);
|
DBG_RETURN(FAIL);
|
||||||
|
@ -1806,7 +1806,7 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_set)(MYSQLND_STMT * const s,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case STMT_ATTR_PREFETCH_ROWS: {
|
case STMT_ATTR_PREFETCH_ROWS: {
|
||||||
unsigned int ival = *(unsigned int *) value;
|
unsigned long ival = *(unsigned long *) value;
|
||||||
if (ival == 0) {
|
if (ival == 0) {
|
||||||
ival = MYSQLND_DEFAULT_PREFETCH_ROWS;
|
ival = MYSQLND_DEFAULT_PREFETCH_ROWS;
|
||||||
} else if (ival > 1) {
|
} else if (ival > 1) {
|
||||||
|
@ -1845,10 +1845,10 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_get)(const MYSQLND_STMT * const s,
|
||||||
*(zend_bool *) value= stmt->update_max_length;
|
*(zend_bool *) value= stmt->update_max_length;
|
||||||
break;
|
break;
|
||||||
case STMT_ATTR_CURSOR_TYPE:
|
case STMT_ATTR_CURSOR_TYPE:
|
||||||
*(zend_ulong *) value= stmt->flags;
|
*(unsigned long *) value= stmt->flags;
|
||||||
break;
|
break;
|
||||||
case STMT_ATTR_PREFETCH_ROWS:
|
case STMT_ATTR_PREFETCH_ROWS:
|
||||||
*(zend_ulong *) value= stmt->prefetch_rows;
|
*(unsigned long *) value= stmt->prefetch_rows;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
DBG_RETURN(FAIL);
|
DBG_RETURN(FAIL);
|
||||||
|
|
|
@ -628,7 +628,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
|
||||||
/* handle MySQL options */
|
/* handle MySQL options */
|
||||||
if (driver_options) {
|
if (driver_options) {
|
||||||
zend_long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30);
|
zend_long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30);
|
||||||
zend_long local_infile = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0);
|
unsigned int local_infile = (unsigned int) pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0);
|
||||||
zend_string *init_cmd = NULL;
|
zend_string *init_cmd = NULL;
|
||||||
#ifndef PDO_USE_MYSQLND
|
#ifndef PDO_USE_MYSQLND
|
||||||
zend_string *default_file = NULL, *default_group = NULL;
|
zend_string *default_file = NULL, *default_group = NULL;
|
||||||
|
@ -779,7 +779,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
|
||||||
} else {
|
} else {
|
||||||
#if defined(MYSQL_OPT_LOCAL_INFILE) || defined(PDO_USE_MYSQLND)
|
#if defined(MYSQL_OPT_LOCAL_INFILE) || defined(PDO_USE_MYSQLND)
|
||||||
// in case there are no driver options disable 'local infile' explicitly
|
// in case there are no driver options disable 'local infile' explicitly
|
||||||
zend_long local_infile = 0;
|
unsigned int local_infile = 0;
|
||||||
if (mysql_options(H->server, MYSQL_OPT_LOCAL_INFILE, (const char *)&local_infile)) {
|
if (mysql_options(H->server, MYSQL_OPT_LOCAL_INFILE, (const char *)&local_infile)) {
|
||||||
pdo_mysql_error(dbh);
|
pdo_mysql_error(dbh);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue