我有一个方法可以将记录插入表中,如下所示:
public static function AddCategory($categoryName)
{
$sql = 'INSERT INTO category(name)
VALUES(' . $category_name .')';
$parameters = array('category_name' => $categoryName);
return DB::Execute($sql,$parameters);
}
有人能告诉我SQL语法是否正确?我无法插入任何记录..我找不到我的错误。 感谢
答案 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查询浏览器上运行它,它将告诉您有关查询失败原因的更准确的详细信息。