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

PHP代码连接MySQL报错:mysqli_connect及mysqli_query错误如何解决?

嘿,我来帮你拆解并解决这两个错误~

首先得明确:第二个错误是因为第一个数据库连接失败直接导致的——当mysqli_connect()连不上数据库时,它会返回false(布尔值),而mysqli_query()要求第一个参数必须是有效的MySQL连接对象,自然就会抛出"expects parameter 1 to be mysqli, boolean given"的报错。咱们先搞定最核心的连接问题:

解决你的MySQL连接与插入错误

1. 修复 "No such file or directory" 连接错误

这个报错在MAMP/MAMP Stack环境里特别常见,根源是PHP默认查找的MySQL socket文件路径,和MAMP实际的socket路径不匹配。有两种简单的解决办法:

方式一:用127.0.0.1代替localhost

把连接代码里的"localhost"换成"127.0.0.1",这样PHP会改用TCP/IP协议连接MySQL,绕开socket文件路径的问题:

<?php 
$conn = mysqli_connect("127.0.0.1", "root", "111111", "你的数据库名"); 

方式二:指定正确的socket路径

如果你坚持想用localhost,就在连接时手动指定MAMP的socket路径。MAMP Stack 7.1.10的socket通常在/Applications/mampstack-7.1.10-1/mysql/tmp/mysql.sock(可以去这个路径确认文件是否存在),修改代码如下:

<?php 
$conn = mysqli_connect("localhost", "root", "111111", "你的数据库名", null, "/Applications/mampstack-7.1.10-1/mysql/tmp/mysql.sock"); 

2. 补全缺失的数据库名和表名

你的代码里"???"(数据库名)和"??"(表名)都是占位符,必须替换成你实际创建的数据库名称和表名称!不然就算连接成功,插入操作也会失败。比如你的数据库叫my_blog,表叫posts,代码要改成:

mysqli_query($conn, " INSERT INTO posts ( title, description, created ) VALUES ( 'MySQL', 'MySQL is ....', NOW() )");

3. 加个错误调试(可选但强烈推荐)

为了以后排查问题更方便,建议在代码里加上连接和插入的错误检查逻辑,能直接看到具体的错误信息:

<?php 
$conn = mysqli_connect("127.0.0.1", "root", "111111", "你的数据库名"); 

// 检查连接是否成功
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}

// 执行插入并验证结果
$sql = "INSERT INTO posts (title, description, created) VALUES ('MySQL', 'MySQL is ....', NOW())";
if (mysqli_query($conn, $sql)) {
    echo "新记录插入成功!";
} else {
    echo "插入失败: " . $sql . "<br>" . mysqli_error($conn);
}

// 记得关闭连接
mysqli_close($conn);
?>

按照上面的步骤调整后,应该就能顺利运行啦~

内容的提问来源于stack exchange,提问作者부건혁

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:58:07