php
  • mysql
  • 2013-03-13 44 views 1 likes 
    1

    您好我有一个MYSQL查询,它可以统计www.google.com在数据库字段中出现的次数,这很好,我试图找到的方法是这将确定谷歌,无论是www.google.com,www.google.co.uk等,等在mysql数据库字段中查找URL的变体

    下面是我的代码,

    $result = mysql_query("SELECT * FROM data WHERE referer='www.google.com' and member ='$site_id'"); 
    

    任何建议,将不胜感激,谢谢。

    +2

    'LIKE www.google%'? – Daedalus 2013-03-13 00:31:43

    +0

    ** DING!** SQL注入警告'member ='$ site_id''! **丁丁!** – slezica 2013-03-13 00:38:12

    回答

    0

    你可以尝试一个简单的LIKE查询:

    SELECT * FROM data WHERE referer LIKE 'www.google.%' and member ='$site_id'

    这将匹配以字符串开头的referer任何价值 “www.google。”

    另外,您不使用mysql_*功能的强制性建议...已被弃用。改为使用PDOmysqli

    +0

    完美的谢谢,没有意识到它是如此简单,并感谢您的建议。赞赏 – user1941709 2013-03-13 00:37:37

    2

    您可以使用LIKE搜索带通配符语法的字符串:%零个或多个任意字符:

    WHERE referer LIKE 'www.google.co%' 
    

    您可以使搜索更具体或更小为好。


    顺便说一下,您的代码易受注入。您应该使用PDO或mysqli正确使用参数化查询。

    +0

    +1感谢上帝的警告 – slezica 2013-03-13 00:37:42

    +0

    不一定如果输入被正确过滤 – 2013-03-13 00:56:41

    +0

    @YounElan查询中存在漏洞,无论输入是否被消毒 – 2013-03-13 00:58:14

    相关问题