Warning: mysql_connect(): SQL safe mode in effect - this function is not allowed in ...
php.ini 中 sql.safe_mode = On 限制了 mysql_*、mysqli_*、pdo_mysql 等函數的主機、用戶、密碼參數,強制使用 INI 預設值或環境變量,導致動態連接失敗。
; php.ini sql.safe_mode = Off
修改後 必須重啟 Web 服務器 (Apache/Nginx+PHP-FPM) 生效。
sql.safe_mode 於 PHP 5.4 移除,PHP 7+ 不存在此指令。PDO 或 mysqli,並配合 mysqli.allow_local_infile、mysqli.allow_persistent 等具體安全選項精細控制。<?php
var_dump(ini_get('sql.safe_mode')); // 應輸出空字符串或 "0"
$mysqli = new mysqli('localhost', 'user', 'pass', 'db');
echo $mysqli->connect_errno ? '連接失敗' : '連接成功';
關閉 sql.safe_mode 即可恢復動態數據庫連接。此為歷史遺留配置,新版本 PHP 已移除,建議升級 PHP 版本徹底避免此類問題。