在 Jqgrid 中使用 SQL

Using SQL Like in Jqgrid

我正在使用 guriddo 中的 jqGrid,并希望动态创建一个包含 LIKE 的查询。我有以下代码:

$sql = "SELECT * FROM users";
if (isset($_SESSION['search']))
{
    $temp = $_SESSION['search'];
    $sql .= " WHERE users.name LIKE %".$temp."%";
}
$grid->SelectCommand = $sql;

但这给了我以下错误:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%'Adam'% LIMIT 0, 0' at line 9

我认为您在 Like

周围缺少单引号 '

以下应该有效

$sql = "SELECT * FROM users";
if (isset($_SESSION['search']))
{
    $temp = $_SESSION['search'];
    $sql .= " WHERE users.name LIKE '%".$temp."%'";
}
$grid->SelectCommand = $sql;

你错过了一个报价。应该是

$sql .= " WHERE users.name LIKE '%".$temp."%'";