Нет конкретной причины, по которой вы не можете использовать mysqli_connect
.
Я вижу, что ваша переменная пользователя базы данных - user
, а не $user
, что может быть проблемой.
Взгляните на документацию cloud sql здесь и вы сможете адаптироваться к синтаксису PHP.
Настройка Node.js выглядит следующим образом:
let pool;
const createPool = async () => {
pool = await mysql.createPool({
user: process.env.DB_USER, // e.g. 'my-db-user'
password: process.env.DB_PASS, // e.g. 'my-db-password'
database: process.env.DB_NAME, // e.g. 'my-database'
// If connecting via unix domain socket, specify the path
socketPath: `/cloudsql/${process.env.CLOUD_SQL_CONNECTION_NAME}`,
// If connecting via TCP, enter the IP and port instead
// host: 'localhost',
// port: 3306,
//...
});
};
createPool();
Таким образом, ключевое наблюдение заключается в том, что имя соединения с сокетом хранится в переменной среды.
Ваш PHP может выглядеть следующим образом:
$user = "whatever_user";
$password = "whatever_password";
$dbname = "whatever_database";
$socket = '/cloudsql/'.$ENV{"CLOUD_SQL_CONNECTION_NAME"};
$database = mysqli_connect(NULL, $user, $password, $dbname, NULL, $socket);