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

在PHP中运行SQL查询时出现语法错误,该如何解决?

问题修复方案

错误原因

你在PHP代码块中直接编写原生SQL语句,PHP解析器会将其识别为无效的PHP语法,这就是导致syntax error的根本原因。PHP无法直接执行裸写的SQL,必须通过数据库扩展提供的方法来执行查询。

修复代码(以MySQLi为例)

假设你的_dbconnect.php中创建的数据库连接变量为$conn,修改后的代码如下:

<?php
include 'partials/_header.php';
include 'partials/_dbconnect.php';

// 将SQL语句定义为PHP字符串
$sql = "SELECT * FROM `categories` WHERE category_id=1;";
// 通过MySQLi执行查询
$result = mysqli_query($conn, $sql);

// 处理查询结果(可选)
if ($result) {
    // 获取单行数据
    $category = mysqli_fetch_assoc($result);
    // 输出数据示例
    print_r($category);
} else {
    // 输出查询错误信息
    echo "查询失败: " . mysqli_error($conn);
}
?>

关键说明

  • 必须将SQL语句包裹在字符串中,赋值给PHP变量,这是PHP能识别的语法格式。
  • 使用mysqli_query()(对应MySQLi扩展)执行查询,第一个参数传入数据库连接对象,第二个参数传入SQL字符串。
  • 可以添加结果判断和错误捕获,方便排查问题。

若使用PDO连接的修复示例

如果你的_dbconnect.php使用PDO创建连接(变量假设为$pdo),代码可以这样写:

<?php
include 'partials/_header.php';
include 'partials/_dbconnect.php';

$sql = "SELECT * FROM `categories` WHERE category_id=1;";
// 执行查询并获取结果
$stmt = $pdo->query($sql);
$category = $stmt->fetch(PDO::FETCH_ASSOC);

print_r($category);
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:36:08