我是一个PHP新手.我正在尝试使用PHP和PDO连接到GAE.我尝试使用MysqL_connect()和MysqL_select_db()进行连接.我成功了.但是,当我尝试使用PDO进行连接时,出现错误
Connection Failed: sqlSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
我的代码如下:
define('DBH_SOCKET', '/cloudsql/****:****');
define('DBH_NAME', 'wordpress_db');
define('DBH_USER', 'censored');
define('DBH_PASSWORD', 'censored');
$pdo_conn = "MysqL:unix_socket=".DBH_SOCKET.";dbname=".DBH_NAME.";charset=utf8";
try {
$dbconn = new PDO($pdo_conn, DBH_USER, DBH_PASSWORD);
$dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
echo 'Connection Failed: ' . $e->getMessage();
}
echo "<br> var is ".$pdo_conn;
/*$conn = MysqL_connect(DBH_SOCKET, DBH_USER, DBH_PASSWORD);
if (!$conn)
die('Connect error ('.MysqL_error());
$db_selected = MysqL_select_db(DBH_NAME, $conn);
if(!$db_selected)
die('Cant use db: '.MysqL_error());*/
我究竟做错了什么?我在网上查看了一些教程,如http://webandphp.com/WorkingwithPHPontheGoogleCloudPlatform-166942.他们使用PHPStorm和JDBC驱动程序.但是,没有提到在官方谷歌教程中使用JDBC驱动程序. 解决方法: 在本地使用PDO进行连接时,您需要使用与本地MysqL服务器设置匹配的连接字符串,例如“MysqL:host = localhost; dbname = {db name}; charset = utf8”.
在GAE上运行时,您当前的连接字符串应该可以正常工作.您收到错误消息“无法找到套接字传输”unix“的事实 – 您是否忘记在配置PHP时启用它?”建议你可能错过了“unix_socket = / cloudsql / {project id}:{instance id}”部分. (编辑:北几岛)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|