首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP文件的LIKE查询问题

问PHP文件的LIKE查询问题
EN

Stack Overflow用户
提问于 2014-12-06 19:15:32
回答 4查看 139关注 0票数 0

我正在开发一个Android应用程序,它通过php文件连接到sql数据库。目前我在我的一个队列上遇到了like函数的问题。

下面是问题所在的文件代码:

代码语言:javascript
复制
$con = mysqli_connect($host,$uname,$pwd,$db) or die("connection failed");

$like = $_REQUEST['like'];

$sql_q = mysqli_query($con,"SELECT `ID`, `Value`, `Value_Complete` FROM `products` WHERE `ID` LIKE '$like'");

if($sql_q)
{
    while($result = mysqli_fetch_assoc($sql_q))
    {
        $output[] = $result;
    }
    if($output)
    {
        print(json_encode($output));
    }
}
else
{
    echo 'Invalid query: ' . mysqli_error() . "\n";
}

mysqli_close($con);
?>

此代码与以下查询配合使用- SELECT ID,Value,Value_Complete FROM products WHERE ID LIKE '11/02/__/00/%‘-并返回:

代码语言:javascript
复制
[{"ID":"11\/02\/00\/00\/00\/0\/0\/0","Value":"Tradicionais","Value_Complete":""},     
{"ID":"11\/02\/01\/00\/00\/0\/0\/0","Value":"Caipis","Value_Complete":""},
{"ID":"11\/02\/02\/00\/00\/1\/0\/0","Value":"Daiquiri","Value_Complete":""},
{"ID":"11\/02\/03\/00\/00\/1\/0\/0","Value":"Gin Tonico","Value_Complete":""},
{"ID":"11\/02\/04\/00\/00\/1\/0\/0","Value":"Long Island Ice Tea","Value_Complete":""},
{"ID":"11\/02\/05\/00\/00\/1\/0\/0","Value":"Manhattan","Value_Complete":""},
{"ID":"11\/02\/06\/00\/00\/1\/0\/0","Value":"Margarita","Value_Complete":""},
{"ID":"11\/02\/07\/00\/00\/1\/0\/0","Value":"Martini Seco","Value_Complete":""},
{"ID":"11\/02\/08\/00\/00\/1\/0\/0","Value":"Black Russian","Value_Complete":""},
{"ID":"11\/02\/09\/00\/00\/1\/0\/0","Value":"White Russian","Value_Complete":""},
{"ID":"11\/02\/10\/00\/00\/1\/0\/0","Value":"Sex on the Beach","Value_Complete":""},    
{"ID":"11\/02\/11\/00\/00\/1\/0\/0","Value":"Sidecar","Value_Complete":""},
{"ID":"11\/02\/12\/00\/00\/1\/0\/0","Value":"Sakerinha","Value_Complete":""},
{"ID":"11\/02\/13\/00\/00\/1\/0\/0","Value":"Tequila Sunrise","Value_Complete":""},
{"ID":"11\/02\/14\/00\/00\/0\/0\/0","Value":"Vodka","Value_Complete":""}]

相同的查询在phpMyAdmin中返回以下内容:

​

​

但是,相同的代码不适用于查询- SELECT ID,Value,Value_Complete FROM products WHERE ID LIKE '$like‘。它返回一个空的结果集,但在phpMyAdmin中返回:

​

我就是搞不懂这里的问题...即使这样- SELECT ID,Value,Value_Complete FROM products WHERE ID LIKE '%'-不返回任何内容,而它应该返回所有内容。

你能帮我一下吗?谢谢。

EN

回答 4

Stack Overflow用户

发布于 2014-12-06 19:18:58

将%添加到变量

代码语言:javascript
复制
"SELECT `ID`, `Value`, `Value_Complete` FROM `products` WHERE `ID` LIKE '$like%'"
票数 0
EN

Stack Overflow用户

发布于 2014-12-06 19:20:14

尝试更改您的查询:

代码语言:javascript
复制
$con = mysqli_connect($host,$uname,$pwd,$db) or die("connection failed");

$like = $_REQUEST['like'];

$sql_q = mysqli_query($con,"SELECT `ID`, `Value`, `Value_Complete` FROM `products` WHERE `ID` LIKE '%".$like."%'");

if($sql_q)
{
    while($result = mysqli_fetch_assoc($sql_q))
    {
        $output[] = $result;
    }
    if($output)
    {
        print(json_encode($output));
    }
}
else
{
    echo 'Invalid query: ' . mysqli_error() . "\n";
}

mysqli_close($con);
?>
票数 0
EN

Stack Overflow用户

发布于 2014-12-06 19:33:02

基本上,就像在某些东西中一样,work等于(=),但它给了你使用通配符的灵活性。%通配符用于在sql查询中定义有某物但无关紧要。

如果您查询中没有使用%,这意味着您正在搜索存储在$like变量中的相同字符串。

在phpmyadmin中,您不需要使用%。因为phpmyadmin的设计目的是使数据库的使用更容易。因此,当您在搜索选项中选择like时,它会在对数据库应用查询之前自动添加%。

由于这个原因,您可以看到这些差异。

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

https://stackoverflow.com/questions/27331052

复制
相关文章

相似问题

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