我刚开始使用Cloud SQL,所以我确信我犯了一个简单的错误。
我可以通过MySQL工作台连接到我的云实例。我创建了一个数据库和表,并能够从MySQL工作台插入和选择该表。
然而,当我尝试通过我的应用程序引擎连接时,我遇到了一个错误。
编辑-这是我的代码:
<?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"
谢谢!
mysql_select_db();已经被弃用,您应该在这种情况下只使用类对象PDO。您也可以使用MYSQLI类。
try{
$db = null;
$db = new pdo('mysql:unix_socket=/cloudsql/my-gae-appname:my-cloud-sql-instance;dbname=myschema', 'root', '');
$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();
}