MySQL查询帮助

时间:2010-05-26 06:47:24

标签: php mysql

我需要在下面的产品表中找到类别ID。但是,cms_ecom_categories.id包含&字符,例如&12&。有什么样的外卡可以用来包裹吗?比如%cms_ecom_categories.id%

 $sql = "SELECT * FROM cms_ecom_products, cms_ecom_categories 
         WHERE cms_ecom_products.pCategories = cms_ecom_categories.id
               AND cms_ecom_categories.slug = ".$page."";

感谢所有提前帮助的人。

2 个答案:

答案 0 :(得分:1)

您可以使用LIKE => WHERE id LIKE %12%

或者将& -signs添加到ID:$page = '&' . $page . '&' => WHERE id = $page

答案 1 :(得分:1)

  • 使用AND cms_ecom_categories.slug = '&".$page."&' - 只需将&符号放在引号
  • 或使用_通配符,意思是正好一个字符AND cms_ecom_categories.slug LIKE '_".$page."_'
  • 或使用%通配符,表示零个或多个字符AND cms_ecom_categories.slug LIKE '%".$page."%'

尽管修改$ page变量本身可能更好。为什么要从字符串构建SQL查询?您应该检查parameterized queries或至少escape,这样更容易,也更安全。