获取此查询中的错误
问题描述:
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链接。获取此查询中的错误
答
编辑: 斯科特·桑德斯是正确的,你不能有一个WHERE在INSERT查询语句。
原始回答: 您应该提供有关错误的更多信息,但您可能在变量$ docuTitle或$ linkTitle中引入了简单的引号('),导致格式错误的查询。
你应该要求使用它们之前逃离这些变量,以及$ CATID,用mysql_escape_string()和否则你的应用程序将很容易受到SQL注入。
您应该阅读一些关于PDO的文档,它是避免SQL查询中这种错误的好工具,它对于进化和可维护性有很大的帮助。
答
你可能想:
INSERT INTO categories (cd_title, cd_link, c_name) VALUES ('$docuTitle','$linkTitle', '$catID')
除非您要更新现有行,然后改变 'INSERT INTO' 到 'UPDATE'
答
要结合一个INSERT语句和UPDATE语句。
您需要选择正确的语法:
INSERT INTO [TABLE] [COLUMNS] VALUES [VALUES]
UPDATE [TABLE] SET [COLUMNS] = [VALUE] WHERE [where clause]
什么错误?我们可以获得数据库模式吗?你的函数参数是否包含任何单引号? – 2009-07-16 13:36:15
哦,请告诉我,这是一个测试类型的东西,并且实际上并没有通过mysql_query()函数直接从您的网页获得sql可执行文件 – jlarson 2009-07-16 13:38:06
在没有连接的插入语句中,'WHERE'没有任何意义。 – 2009-07-16 13:39:15