Connect to MySQL with Procedural mysqli
Connects to MySQL with procedural mysqli_connect(), sets utf8mb4, returns a connection handle on success, and reports safe public failure messages.
Purpose
Connects to MySQL with procedural mysqli_connect(), sets utf8mb4, returns a connection handle on success, and reports safe public failure messages.
Snippet details
ContextDatabaseLevelProductionCopy-and-paste statusMarked safe after review.Categories
- Database Integrity
Code
<?php
/*
* Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
* Free for personal and internal use. Paid project use requires visible credit
* to Jeffery L. Paris. Corporate use requires a paid license fee unless a
* separate written license states otherwise.
*/
/**
* Connect to MySQL with Procedural mysqli.
*
* Purpose:
* Opens a procedural mysqli connection, sets utf8mb4, and returns either the
* ready connection handle or a safe public failure message.
*
* @param string $db_host Database host name.
* @param string $db_user Database user name.
* @param string $db_pass Database password.
* @param string $db_name Database name.
* @return array Connection status, public message, and mysqli connection when successful.
*/
function ogSnippetConnectToMysqlProceduralMysqli(string $db_host, string $db_user, string $db_pass, string $db_name): array {
$connection = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if ($connection === false) {
return array(
'success' => false,
'message' => 'Database connection failed. Check credentials and server status.',
'connection' => null
);
}
$charset_set = mysqli_set_charset($connection, 'utf8mb4');
if ($charset_set === false) {
mysqli_close($connection);
return array(
'success' => false,
'message' => 'Database connection opened, but utf8mb4 charset setup failed.',
'connection' => null
);
}
return array(
'success' => true,
'message' => 'Database connection ready for procedural mysqli queries.',
'connection' => $connection
);
}
$db_result = ogSnippetConnectToMysqlProceduralMysqli('localhost', 'og_reader', 'change-me', 'phpog_library');
if ($db_result['success'] === true) {
echo 'Battlestar manifest database link established.';
mysqli_close($db_result['connection']);
} else {
echo $db_result['message'];
}