我有这段代码:
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,前面没有分号
答案 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
。
如果您的凭据正确,这将有效。