无法连接到我的Azure数据库MySQL。这是我的PHP代码:
class access {
var $user = "##";
var $pass = "##";
var $conn = null;
var $result = null;
var $StudentID = null;
var $sql = null;
public function connect() {
$this->conn = new mysqli( host: 'autosign.database.windows.net', username: '##', passwd: '##', dbname: 'Automat');
if (mysqli_connect_error()){
echo 'Could not connect to database';
} else {
echo 'Connected and Selected';
}
}
}
我正在使用XAMMP来运行PHP脚本。我使用的是模板应用程序,因此无法使用默认的Azure应用程序连接,而且我使用可下载的Azure框架失败了。
答案 0 :(得分:1)
我的第一直觉告诉我,您的Azure数据库for MySQL配置为需要SSL,而您的代码没有使用它。
您有两种选择:
这里有#1和#2两者的文档,代码示例为:https://docs.microsoft.com/en-us/azure/mysql/howto-configure-ssl#php
简而言之:
从https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem下载SSL CA证书,并将其放在包含PHP代码的文件夹中。然后,编辑连接,以便它(从文档中复制):
$conn = mysqli_init();
mysqli_ssl_set($conn, NULL, NULL, "/path/to/your/cert/BaltimoreCyberTrustRoot.crt.pem", NULL, NULL);
mysqli_real_connect($conn, 'autosign.mysql.database.azure.com', $user, $pass, 'Automat', 3306, MYSQLI_CLIENT_SSL, MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);