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

Ajax搜索表单数据库连接异常求助附连接代码及报错信息

解决你的Ajax搜索表单数据库连接问题

嘿,我帮你排查下这个数据库连接的问题,一眼就能看到几个明显的小错误,咱们一步步解决:

核心问题分析

  • 混用mysql与mysqli扩展:你的代码里同时用了mysqli_connect()(mysqli扩展)和mysql_error()(mysql扩展),这俩是完全独立的扩展,不能交叉使用!而且mysql扩展早在PHP 5.5就被废弃,PHP 7+直接移除了,这就是你看到Warning: mysql...警告的根本原因。
  • mysqli_select_db参数缺失:mysqli_select_db()必须第一个参数传数据库连接对象,你只传了数据库名,这也会导致连接失败。

修正后的连接代码

直接替换你的db.inc代码就行:

<?php
$username = "xxxx";
$password = "xxxx";
$hostname = "xxxx";
$database = "xxxx";

// 创建连接并保存连接对象
$conn = mysqli_connect($hostname, $username, $password);

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

// 选择目标数据库,必须传入连接对象
if (!mysqli_select_db($conn, $database)) {
    die("选择数据库失败: " . mysqli_error($conn));
}
?>

更简洁的写法(推荐)

其实可以用mysqli的面向对象风格,直接在连接时指定数据库,省去单独选库的步骤,代码更清晰:

<?php
$username = "xxxx";
$password = "xxxx";
$hostname = "xxxx";
$database = "xxxx";

// 直接在连接时指定数据库
$conn = new mysqli($hostname, $username, $password, $database);

// 检查连接状态
if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error);
}
?>

额外提醒

  • 别把数据库账号密码直接写在代码里,建议放在web目录外的配置文件,或者用环境变量存储,更安全。
  • 后续处理搜索请求的数据库查询代码,也要统一用mysqli的函数(比如mysqli_query()),绝对不要再碰mysql系列函数了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:34:07