首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用通配符mysql查询搜索所有带有varchar和INT字段的数据库

使用通配符mysql查询搜索所有带有varchar和INT字段的数据库
EN

Stack Overflow用户
提问于 2012-06-15 06:35:12
回答 1查看 344关注 0票数 0

尝试使用通配符搜索来拾取org_name字段中的任何文本,并拾取输入到表单中的任何包含1的整型字段,

例如,如果有人在表单中输入了儿童保姆,我希望所有包含儿童保姆INT字段和1的记录都会显示在结果中……

代码语言:javascript
复制
$sql_result= "SELECT * FROM table WHERE org_name LIKE '%" . $org_name . "%' 

OR carer LIKE '1'
OR childminder LIKE '1' ";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-15 06:39:01

不知道为什么要做这样的事情,但听起来像是手动查询连接的候选者(提示:不要这样做,这很痛苦)。PDO不支持绑定列名,所以如果您试图从库/其他已建立的解决方案中获得任何帮助,那么您就不走运了。

更新

如果您的模式没有改变,并且您关心的是SQLi,那么您可以使用一些匹配机制来获取搜索查询和可用(“可匹配”)列的数组,并对它们进行处理,报告匹配的列。然后你就可以从安全数据中进行查询了。示例代码:

代码语言:javascript
复制
$columns = array(/* ... */);
$query = '/* ... */';
$matches = array();
foreach($columns as $column) 
    { 
    if(preg_match('/'.$column.'/', $query)) 
        { 
        $matches[] = $column; 
        } 
    }

$sqlQuery = 'you select';
foreach($matches as $match)
    {
    $sqlQuery .= ' OR '.$match.' = 1';
    }

这不是确切的代码,但您应该明白其中的含义。

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

https://stackoverflow.com/questions/11042280

复制
相关文章

相似问题

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