Php 连接到云MySQL实例
我对网络开发相当陌生;我目前正在尝试创建一个网站,允许用户提交信息并将其存储在数据库中。我有GoDaddy作为我的域名和主机,我使用谷歌云平台作为云数据库存储 我已经成功地解决了如何将HTML表单数据存储到本地数据库(PhpMyAdmin)中的问题;我还使用MySQL Workbench成功地将我的Google Cloud实例连接到另一个本地数据库 我不知道如何把每件事都联系起来;我是否需要将我的谷歌云实例与GoDaddy连接?我应该使用GoDaddy的数据库服务吗?我试着把我实例的IPv4地址作为“主机名”放在我的PHP连接代码中,我上传到了GoDaddy,但它没有连接,我不知道为什么。我甚至不知道这是不是你应该做的 我读过关于必须允许特定IP地址的权限来存储信息的文章,但这对我来说毫无意义,因为在现实世界中,我可以简单地访问网站,填写表格,然后将我的信息发送到该公司的“某个远程数据库”。这就是我试图为我的网站实现的目标。多谢各位Php 连接到云MySQL实例,php,mysql,google-cloud-platform,Php,Mysql,Google Cloud Platform,我对网络开发相当陌生;我目前正在尝试创建一个网站,允许用户提交信息并将其存储在数据库中。我有GoDaddy作为我的域名和主机,我使用谷歌云平台作为云数据库存储 我已经成功地解决了如何将HTML表单数据存储到本地数据库(PhpMyAdmin)中的问题;我还使用MySQL Workbench成功地将我的Google Cloud实例连接到另一个本地数据库 我不知道如何把每件事都联系起来;我是否需要将我的谷歌云实例与GoDaddy连接?我应该使用GoDaddy的数据库服务吗?我试着把我实例的IPv4地址
PS:我使用PHP作为服务器端语言。这里有一个通用函数,您可以使用它连接到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;
}
无论脚本位于何处,您都可以使用它。php连接知识的宝库!