php版本5.9.5中的MYSQL_ATTR_LOCAL_INFILE

时间:2015-01-30 09:54:07

标签: php mysql

我有这段代码:

 try {
   $pdo = new PDO("mysqli:host=$databasehost;dbname=$databasename", 
    $databaseusername, $databasepassword,
    array(
        PDO::MYSQL_ATTR_LOCAL_INFILE => true,
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    )
 );
 } catch (PDOException $e) {
    die("database connection failed: ".$e->getMessage());
 }

我的代码直截了当地抓住了 我在这里遇到了什么问题?

当我执行phpinfo()时,我启用了pdo驱动程序:

PDO驱动程序mysql,sqlite PDO_MYSQL

启用了MySQL的PDO驱动程序 客户端API版本mysqlnd 5.0.11-dev - 20120503 - $ Id:f373ea5dd5538761406a8022a4b8a374418b240e $

在php.ini中我有: extension = php_pdo_mysql.dll,前面没有分号

1 个答案:

答案 0 :(得分:2)

试试这样:

try {
    $pdo = new PDO('mysql:host=' . $databasehost . ';dbname=' . $databasename , $databaseusername, $databasepassword, array(PDO::MYSQL_ATTR_LOCAL_INFILE=>1));
}
catch (PDOException $e) {
    die('Error!: ' . $e->getMessage() . '<br/>');
}
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec("set names utf8");

虽然需要在初始字符串中设置MYSQL_ATTR_LOCAL_INFILE,但此后会设置ATTR_ERRMODE

如果您的凭据正确,这将有效。