插入记录mysql

时间:2010-02-10 16:43:22

标签: php mysql

我有一个方法可以将记录插入表中,如下所示:

public static function AddCategory($categoryName)
    {
        $sql = 'INSERT INTO category(name) 
                VALUES(' . $category_name .')';
        $parameters = array('category_name' => $categoryName);
        return DB::Execute($sql,$parameters);   
    }

有人能告诉我SQL语法是否正确?我无法插入任何记录..我找不到我的错误。 感谢

3 个答案:

答案 0 :(得分:1)

public static function AddCategory($categoryName) {
    $sql = 'INSERT INTO category (name)
            VALUES (:category_name)';
    $parameters = array('category_name' => $categoryName);
    return DB::Execute($sql,$parameters);   
}

答案 1 :(得分:0)

根据我的简短观察,这一行是多余的:

 $parameters = array('category_name' => $categoryName);

您已在查询本身中指定了插入的值。你现在只需要执行它。

答案 2 :(得分:0)

我不完全理解你想要做什么,一个有效的SQL INSERT sintax是:

INSERT INTO table1 VALUES(value1,value2,...)

所以我想你的代码应该改为:

public static function AddCategory($categoryName) 
    { 
        //I don't know the real name of the TABLE you want to update, so you have to replace CATEGORIES_TABLE with your table name 
        $sql = 'INSERT INTO CATEGORIES_TABLE VALUES(' . $categoryName .')'; 
        return DB::Execute($sql);    
    } 

我不知道DB :: Execute做了什么,我想它会执行查询。

仅供参考,测试此方法的一个好方法是在执行查询之前添加以下行:

echo "<br>" . $sql . "</br>";

然后,您获取PHP打印的结果并在MySQL查询浏览器上运行它,它将告诉您有关查询失败原因的更准确的详细信息。