Я только начинаю с Cloud SQL, поэтому я уверен, что я совершаю простую ошибку.
Я могу подключиться к своему экземпляру Cloud через 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’
Спасибо!
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();
}
Других решений пока нет …