【发布时间】:2014-10-14 04:50:43
【问题描述】:
我刚开始使用 Cloud SQL,所以我确定我犯了一个简单的错误。
我可以通过 MySQL Workbench 连接到我的云实例。我创建了一个数据库和一个表,并且能够从 MySQL Workbench 中的这个表中插入和选择。
但是,当我尝试通过我的应用引擎进行连接时,我遇到了错误。
已编辑-这是我的代码:
<?php
try{
$db = null;
$db = new pdo('mysql:unix_socket=/cloudsql/my-gae-appname:my-cloud-sql-instance;dbname=myschema', 'root', '');
mysql_select_db('myschema');
$action = $_GET["action"];
$mapid = $_GET["mapid"];
$src = $_GET["src"];
$ip = $_SERVER["REMOTE_ADDR"];
$stmt = $db->prepare('INSERT INTO myschema.report (action, mapid, ip, source) VALUES (?,?,?,?)');
$stmt->execute(array($action, $mapid, $ip, $src));
$affected_rows = $stmt->rowCount();
echo $affected_rows;
$db = null;
}catch(PDOException $ex){
echo $ex->getMessage();
}
?>
我得到的错误是: SQLSTATE[HY000] [1049] 未知数据库 'dpe'
谢谢!
【问题讨论】:
-
尝试在连接下方的 php
error_reporting(E_ALL); ini_set('display_errors', '1');和$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);上添加错误报告 -
可能是因为您正在使用
mysql_select_db和 PDO 混合使用 MySQL API。 -
通常的 PDO 连接语法
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);- 根据 php.net/manual/en/pdo.connections.php - 那么,你为什么使用mysql_select_db('myschema');? -
@Fred-ii- 请参阅我对 Siniseus 回答的回复。
标签: php google-cloud-sql