は、Google Cloud SQLインスタンスへの接続に使用できる一般的な機能である:
function connectSQL($dbProject, $dbRegion, $dbInstance, $dbIP, $dbName, $dbUsername, $dbPassword, $ssl = TRUE, $persistent = FALSE, $appEngine = FALSE) {
// $dbProject is the project that owns the database, which may differ from the project using the database
// Create a connection
$db = NULL;
if ($appEngine) {
// Connect from App Engine
if ($persistent) {
try {
$db = new pdo("mysql:unix_socket=/cloudsql/$dbProject:$dbRegion:$dbInstance;dbname=$dbName", $dbUsername, $dbPassword, array(PDO::ATTR_PERSISTENT => TRUE));
} catch(PDOException $ex) {
echoArr($ex);
return FALSE;
}
} else {
try {
$db = new pdo("mysql:unix_socket=/cloudsql/$dbProject:$dbRegion:$dbInstance;dbname=$dbName", $dbUsername, $dbPassword);
} catch(PDOException $ex) {
echoArr($ex);
return FALSE;
}
}
} else {
// Connect from a non-App Engine environment (localhost, other hosting, etc.)
if ($persistent) {
if (!$ssl) {
try{
$db = new pdo('mysql:host='.$dbIP.':3306;dbname='.$dbName, $dbUsername, $dbPassword, array(PDO::ATTR_PERSISTENT => TRUE));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echoArr($ex);
return FALSE;
}
} else {
try{
$db = new pdo('mysql:host='.$dbIP.':3306;dbname='.$dbName, $dbUsername, $dbPassword, array(
PDO::MYSQL_ATTR_SSL_KEY=>'/path/to/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT=>'/path/to/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA=>'/path/to/server-ca.pem',
PDO::ATTR_PERSISTENT => TRUE
)
);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echoArr($ex);
return FALSE;
}
}
} else {
if (!$ssl) {
try{
$db = new pdo('mysql:host='.$dbIP.':3306;dbname='.$dbName, $dbUsername, $dbPassword);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echoArr($ex);
return FALSE;
}
} else {
try{
$db = new pdo('mysql:host='.$dbIP.':3306;dbname='.$dbName, $dbUsername, $dbPassword, array(
PDO::MYSQL_ATTR_SSL_KEY=>'/path/to/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT=>'/path/to/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA=>'/path/to/server-ca.pem'
)
);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echoArr($ex);
return FALSE;
}
}
}
}
return $db;
}
あなたは関係なく、あなたのスクリプトがホストされている場所のこれを使用することができます。