I am using web app and azure mySQL database. I tried using a simple connection:
$host = 'xxxxx.mysql.database.azure.com';
$username = 'xxxxxxxx';
$password = 'xxxxxxxx';
$db_name = 'xxxxxxxx';
//Establishes the connection
$conn = mysqli_init();
mysqli_ssl_set($conn, NULL, NULL, "/cert/BaltimoreCyberTrustRoot.crt.pem",
NULL, NULL);
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306,
MYSQLI_CLIENT_SSL, MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}
//Run the Select query
printf("Reading data from table:
");
$res = mysqli_query($conn, 'SELECT * FROM tbl_xxxx');
while ($row = mysqli_fetch_assoc($res)) {
echo $row["ID"]. " : " . $row["XXXX"]."<br>";
}
//Close the connection
mysqli_close($conn);
But when I use the connection string on my database class, I go this error: An attempt was made to access a socket in a way forbidden by its access permissions.
on a client browser.
My database class is:
public function open_connection() {
$this->conn = mysqli_init();
mysqli_ssl_set($this->conn, NULL, NULL, "/cert/BaltimoreCyberTrustRoot.crt.pem", NULL, NULL);
mysqli_real_connect($this->conn, server, user, pass, database_name, 3306, MYSQLI_CLIENT_SSL, MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
if(mysqli_connect_errno($this->conn)){
echo "Problem in database connection:". mysqli_connect_error();
exit();
}else{
$db_select = mysqli_select_db($this->conn, database_name);
if (!$db_select) {
echo "Problem in selecting database:". mysqli_connect_error();
exit();
}
}
}
Please note that the server, user, pass, database_name
is already defined with same value in the above code. Fyi, my test shows the echo for Problem in selecting database:
so the connection is fine. Is there anything I can do to properly select a database by using this class? Thank you.