Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接到云MySQL实例_Php_Mysql_Google Cloud Platform - Fatal编程技术网

Php 连接到云MySQL实例

Php 连接到云MySQL实例,php,mysql,google-cloud-platform,Php,Mysql,Google Cloud Platform,我对网络开发相当陌生;我目前正在尝试创建一个网站,允许用户提交信息并将其存储在数据库中。我有GoDaddy作为我的域名和主机,我使用谷歌云平台作为云数据库存储 我已经成功地解决了如何将HTML表单数据存储到本地数据库(PhpMyAdmin)中的问题;我还使用MySQL Workbench成功地将我的Google Cloud实例连接到另一个本地数据库 我不知道如何把每件事都联系起来;我是否需要将我的谷歌云实例与GoDaddy连接?我应该使用GoDaddy的数据库服务吗?我试着把我实例的IPv4地址

我对网络开发相当陌生;我目前正在尝试创建一个网站,允许用户提交信息并将其存储在数据库中。我有GoDaddy作为我的域名和主机,我使用谷歌云平台作为云数据库存储

我已经成功地解决了如何将HTML表单数据存储到本地数据库(PhpMyAdmin)中的问题;我还使用MySQL Workbench成功地将我的Google Cloud实例连接到另一个本地数据库

我不知道如何把每件事都联系起来;我是否需要将我的谷歌云实例与GoDaddy连接?我应该使用GoDaddy的数据库服务吗?我试着把我实例的IPv4地址作为“主机名”放在我的PHP连接代码中,我上传到了GoDaddy,但它没有连接,我不知道为什么。我甚至不知道这是不是你应该做的

我读过关于必须允许特定IP地址的权限来存储信息的文章,但这对我来说毫无意义,因为在现实世界中,我可以简单地访问网站,填写表格,然后将我的信息发送到该公司的“某个远程数据库”。这就是我试图为我的网站实现的目标。多谢各位


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连接知识的宝库!