2010-02-10 72 views
0

我有如下图所示,其插入一条记录到表中的方法:插入记录的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语法是正确的?我无法插入任何记录..我无法找到我的错误。 感谢

回答

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

谢谢!它实际上工作! :) – chupinette 2010-02-10 18:00:36

0

从我的简短观察这一行是多余的:

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

您已经指定内部查询本身插入的值。您现在只需要执行它。

0

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

INSERT INTO表1 VALUES(值1,值2,...)

,所以我想你的代码应改为类似:

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 ::执行呢,我想执行一个查询。

仅供参考,以测试一个很好的办法就是exectuing查询之前添加以下行:

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

然后你把PHP所打印的结果和MySQL查询浏览器来运行它,它会告诉你更多有关为什么查询失败的准确细节。

+0

谢谢!即时通讯将尝试.. – chupinette 2010-02-10 17:00:55