php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #62889 LOAD DATA INFILE broken
Submitted: 2012-08-22 10:14 UTC Modified: 2020-01-05 13:10 UTC
Votes:31
Avg. Score:4.5 ± 0.8
Reproduced:28 of 28 (100.0%)
Same Version:11 (39.3%)
Same OS:9 (32.1%)
From: phpbugs2012 at joern dot heissler dot de Assigned:
Status: Closed Package: PDO MySQL
PHP Version: master-Git-2012-08-22 (Git) OS:
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: phpbugs2012 at joern dot heissler dot de
New email:
PHP Version: OS:

 

 [2012-08-22 10:14 UTC] phpbugs2012 at joern dot heissler dot de
Description:
------------
#46964 introduced a new bug. The patch there to fix compilation issues actually breaks the feature.

ext/pdo_mysql/mysql_driver.c has this line:
#if defined(MYSQL_OPT_LOCAL_INFILE) || defined(PDO_USE_MYSQLND)

MYSQL_OPT_LOCAL_INFILE is not a macro. It's an enum.
The defined() will always be false and the block will not be compiled.

One way to fix this is to add a configure check which compiles a program like this:
#include <mysql/mysql.h>
int opt = MYSQL_OPT_LOCAL_INFILE;

When it cannot be compiled, the enum isn't defined. Then define some macro or so which can be checked by the preprocessor.


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2012-10-25 10:48 UTC] uw@php.net
-Assigned To: +Assigned To: mysql
 [2014-01-01 12:35 UTC] felipe@php.net
-Package: PDO related +Package: PDO MySQL
 [2015-02-03 20:11 UTC] phpbugs2012 at joern dot heissler dot de
Work around for the problem:
* add to options array: PDO::MYSQL_ATTR_READ_DEFAULT_GROUP => 'client'
* add to /etc/mysql/my.cnf:
[client]
local-infile = 1
 [2017-10-24 08:07 UTC] kalle@php.net
-Status: Assigned +Status: Open -Assigned To: mysql +Assigned To:
 [2020-01-05 13:10 UTC] cmb@php.net
-Status: Open +Status: Verified
 [2020-01-05 13:10 UTC] cmb@php.net
> MYSQL_OPT_LOCAL_INFILE is not a macro. It's an enum.

That[1].

This issue has been resolved for mysqlnd by fixing bug #54158, but
still persists for libmysql-client.

[1] <https://github.com/mysql/mysql-server/blob/91a17cedb1ee880fe7915fb14cfd74c04e8d6588/include/mysql.h#L178>
 [2020-12-11 10:26 UTC] nikic@php.net
Automatic comment on behalf of nikita.ppv@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=43741a3f26c5094fa818f60744f11139940ccf08
Log: Fixed bug #62889
 [2020-12-11 10:26 UTC] nikic@php.net
-Status: Verified +Status: Closed
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 07 15:01:27 2024 UTC