You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地主机数据库连接失败:MariaDB SQL语法错误求助

问题排查与解决

错误原因

报错的核心是SQL语法错误,出在这行代码:

$connect->exec("SET NAMES ='UTF8'");

SET NAMES的正确语法不需要加等号,多余的等号导致MariaDB解析SQL时出错。

修复方案

方案1:修正SET NAMES语法

把错误的语句改成:

$connect->exec("SET NAMES 'utf8mb4'");

建议统一使用utf8mb4(支持emoji等全Unicode字符),替代MySQL/MariaDB中仅支持部分Unicode的UTF8(实际为utf8mb3)。同时可以移除SET character_set_connection ='utf8mb4',因为SET NAMES 'utf8mb4'已经包含了对character_set_connection、character_set_results、character_set_client三个参数的设置,重复执行没必要。

方案2:更优的字符集设置方式(推荐)

直接在PDO的DSN中指定字符集,无需额外执行SET语句,更简洁可靠:

<?php
$server="localhost";
$user="root";
$pass="";
$dbname="expert";

// DSN中添加charset参数
$dsn="mysql:host=$server;dbname=$dbname;charset=utf8mb4";
try {
    $connect=new PDO($dsn,$user,$pass);
    // 可选:开启异常错误模式,方便后续调试
    $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $error){
    echo "无法连接数据库:".$error->getMessage();
}
?>

内容的提问来源于stack exchange,提问作者mahdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:02:08