|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2015-02-03 20:13 UTC] phpbugs2012 at joern dot heissler dot de
[2020-12-11 10:42 UTC] nikic@php.net
-Status: Open
+Status: Duplicate
[2020-12-11 10:42 UTC] nikic@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 09:00:01 2025 UTC |
Description: ------------ Using SQL statement LOAD DATA LOCAL INFILE with PDO doesn't work, an error "SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MySQL version" is returned even with PDO::MYSQL_ATTR_LOCAL_INFILE set to 1 in constructor. When trying the same with mysqli extension however, everything is executed correctly and test table is filled with data. PHP is running on Debian Wheezy, using package from dotdeb.org Test script: --------------- // Non-functional with PDO try { $con = new PDO("mysql:host=127.0.0.1;dbname=testdb", "user", "pass", array(PDO::MYSQL_ATTR_LOCAL_INFILE => 1)); $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $con->exec('load data local infile \'test.csv\' into table testtable fields terminated by \',\' enclosed by \'"\' escaped by \'"\''); } catch (PDOException $e) { echo $e->getMessage(); } //Functional with mysqli $con = mysqli_init(); mysqli_options($con, MYSQLI_OPT_LOCAL_INFILE, true); mysqli_real_connect($con, '127.0.0.1', 'user', 'pass', 'testdb'); mysqli_query($con, 'load data local infile \'test.csv\' into table testtable fields terminated by \',\' enclosed by \'"\' escaped by \'"\'');