2009-07-16 43 views
-2
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链接。获取此查询中的错误

+1

什么错误?我们可以获得数据库模式吗?你的函数参数是否包含任何单引号? – 2009-07-16 13:36:15

+1

哦,请告诉我,这是一个测试类型的东西,并且实际上并没有通过mysql_query()函数直接从您的网页获得sql可执行文件 – jlarson 2009-07-16 13:38:06

+1

在没有连接的插入语句中,'WHERE'没有任何意义。 – 2009-07-16 13:39:15

回答

2

编辑: 斯科特·桑德斯是正确的,你不能有一个WHERE在INSERT查询语句。

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

你应该要求使用它们之前逃离这些变量,以及$ CATID,用mysql_escape_string()和否则你的应用程序将很容易受到SQL注入。

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

2

你可能想:

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

除非您要更新现有行,然后改变 'INSERT INTO' 到 'UPDATE'

1

要结合一个INSERT语句和UPDATE语句。

您需要选择正确的语法:

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

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