在此查询中获取错误

时间:2009-07-16 13:34:04

标签: php mysql

function saveFile($catId,$docuTitle,$linkTitle) {

 $result = mysql_query("INSERT INTO categories (cd_title, cd_link)
                       VALUES ('$docuTitle','$linkTitle') WHERE c_name = '$catID'");    

            return 'yes';

        }

我想根据所选的catergory插入cd标题和cd链接。

3 个答案:

答案 0 :(得分:2)

编辑: Scott Saunders是对的,你不能在INSERT查询中有一个WHERE语句。

原始答案: 您应该提供有关错误的更多信息,但您可能在变量$ docuTitle或$ linkTitle中有一个简单的引号('),导致查询格式错误。

在使用mysql_real_escape_string()之前,您应该使用mysql_real_escape_string()来转义这些变量以及$ catId,否则您的应用将容易受到SQL注入攻击。

你应该阅读一些关于PDO的文档,它是一个很好的工具,可以避免SQL查询中的这种错误,并且它对于进化性和可维护性有很大的帮助。

答案 1 :(得分:2)

你可能想要:

INSERT INTO categories (cd_title, cd_link, c_name) VALUES ('$docuTitle','$linkTitle', '$catID') 

除非您要更新现有行,否则请将“INSERT INTO”更改为“UPDATE”

答案 2 :(得分:1)

您正在组合INSERT语句和UPDATE语句。

您需要选择正确的语法:

INSERT INTO [TABLE] [COLUMNS] VALUES [VALUES]

UPDATE [TABLE] SET [COLUMNS] = [VALUE] WHERE [where clause]