php
  • mysql
  • syntax
  • 2011-06-14 42 views 0 likes 
    0

    有人可以帮我弄清楚这个功能有什么问题? 我得到一个MySQL的语法错误......Mysql语法错误...或者它是PHP吗?

    function category_exists($name) { 
        $name = mysql_real_escape_string($name); 
    
        $query = mysql_query("SELECT COUNT(1) FROM 'categories' WHERE 'name' = '{$name}'"); 
        return (mysql_result($query, 0) == '0')? false : true; 
    } 
    
    +2

    那么错误是什么?它说'MySQL语法错误'的事实表明与... MySql语法错误? – mdm 2011-06-14 08:19:55

    回答

    3

    你不应该有你的表和列名(categoriesname)左右的报价。如果您需要转义表或列名称,则应使用反引号(`)。 IE:

    $query = mysql_query("SELECT COUNT(1) FROM `categories` WHERE `name` = '{$name}'"); 
    
    +0

    相同的表名'categories'=> \'categories \' – SirDarius 2011-06-14 08:22:12

    0

    字符串被引用。对象名称(表格,列...)不是。

    0

    尝试更改查询

    "SELECT COUNT(*) FROM 'categories' WHERE name = '$name'" 
    
    1
    function category_exists($name) { 
        $name = mysql_real_escape_string($name); 
    
        $query = mysql_query("SELECT COUNT(1) FROM `categories` WHERE `name` = '{$name}'"); 
        return (mysql_result($query, 0) == '0')? false : true; 
    } 
    

    您需要用反引号(')或周围表名和字段名没有引号。

    相关问题