首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询失败

问SQL查询失败
EN

Stack Overflow用户
提问于 2013-04-10 14:37:00
回答 3查看 447关注 0票数 1

我希望查询最初返回c_id>0所在位置的所有记录,然后根据通过文本框提供的后续条件进行过滤。但是,在第一次访问页面时,我不会打印任何记录。代码如下:

代码语言:javascript
复制
$ctitle = mysql_real_escape_string($_POST['ctitle']);
$csubject = mysql_real_escape_string($_POST['csubject']);
$creference = mysql_real_escape_string($_POST['creference']);
$cobjecttype = mysql_real_escape_string($_POST['cobjecttype']);
$cmaterial = mysql_real_escape_string($_POST['cmaterial']);
$ctechnic = mysql_real_escape_string($_POST['ctechnic']);
$cartist = mysql_real_escape_string($_POST['cartist']);
$csource = mysql_real_escape_string($_POST['csource']);

    $sql = "SELECT * FROM collections WHERE (
    c_id>0 AND
    `ctitle` LIKE '{$ctitle}' AND
    `csubject` LIKE '{$csubject}' AND
    `creference` LIKE '{$creference}' AND
    `cobjecttype` LIKE '{$cobjecttype}' AND
    `cmaterial` LIKE '{$cmaterial}' AND
    `ctechnic` LIKE '{$ctechnic}' AND
    `csource` LIKE '{$csource}' AND
    `cartist` LIKE '{$cartist}'
    )ORDER BY c_id DESC";

当我回显查询时,我会打印以下内容:

代码语言:javascript
复制
request "Could not execute SQL query" SELECT * FROM collections WHERE ( c_id>0 AND `ctitle` LIKE '' AND `csubject` LIKE '' AND `creference` LIKE '' AND `cobjecttype` LIKE '' AND `cmaterial` LIKE '' AND `ctechnic` LIKE '' AND `csource` LIKE '' AND `cartist` LIKE '' )ORDER BY c_id DESC

从这里我应该去哪里?

EN

回答 3

Stack Overflow用户

发布于 2013-04-10 14:38:57

在)和ORDER BY之间加一个空格

票数 0
EN

Stack Overflow用户

发布于 2013-04-10 14:40:05

两个where子句元素前后不需要大括号。

票数 0
EN

Stack Overflow用户

发布于 2013-07-18 07:58:11

好的..。我想我明白了..。尝试将LIKE ''替换为LIKE '%'

LIKE ''将不起作用,因为它只显示空列。通过添加一个通配符 (%),它将显示与所有内容匹配的所有行。但是,完全动态构建查询,省略空的WHERE条件,可能是一种更好、更简洁的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15918655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档