提供標準的 MySQL 連線程式碼,並針對經典錯誤 Call to undefined function mysql_connect() 給出三步驟解決方案。注意:mysql_* 函數已於 PHP 7.0 移除,新專案請改用 PDO/MySQLi。
<?php
$hostname = 'localhost';
$database = 'your_db_name';
$username = 'root';
$password = 'your_password';
$conn = mysql_pconnect($hostname, $username, $password)
or trigger_error(mysql_error(), E_USER_ERROR);
mysql_select_db($database, $conn);
mysql_query('SET NAMES utf8', $conn); // 設定編碼
?>
<?php require_once('Connections/conn.php'); ?>
原因:PHP 未載入 MySQL 擴展,或版本不匹配(PHP 7+ 已移除)。
libmysql.dll、php5ts.dll 複製至 C:\Windows\System32 (或 PHP 目錄並加入 PATH)。extension_dir = "D:/php/ext" (指向擴展資料夾)。php.ini,移除 ;extension=php_mysql.dll 前的分號。PHP 7+ 需安裝 php-mysqlnd 並啟用 extension=pdo_mysql、extension=mysqli。<?php
$dsn = 'mysql:host=localhost;dbname=your_db;charset=utf8mb4';
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, 'username', 'password', $opt);
// 使用 $pdo->prepare() / $pdo->query()
?>
mysql_pconnect() 持久連線,PHP-FPM 模式下可能導致連線洩漏,建議改用普通 mysql_connect() 或 PDO。charset=utf8mb4 支援完整 Unicode (含 Emoji)。