Mysql SQL替换为不工作

Mysql SQL替换为不工作,mysql,insert,replace,Mysql,Insert,Replace,因此,我有一个表单,它可以通过ID(自动递增列(主键))从数据库中获取数据,并通过值属性显示标记中的所有字段。当我提交表单时,如果ID列中的ID不存在,我希望它插入一个新行,如果存在,我希望用相同的ID更新行中的其余数据 我一直在努力研究这个问题,但似乎没有人做与我尝试做的相同的事情,它总是略有不同。我在中找到了一个替换,并创建了它,如下所示: $sqlString = 'REPLACE INTO coursework SET cwID=`'. $cwID .'`, cwTitle=`'. $c

因此,我有一个表单,它可以通过ID(自动递增列(主键))从数据库中获取数据,并通过值属性显示
标记中的所有字段。当我提交表单时,如果ID列中的ID不存在,我希望它插入一个新行,如果存在,我希望用相同的ID更新行中的其余数据

我一直在努力研究这个问题,但似乎没有人做与我尝试做的相同的事情,它总是略有不同。我在中找到了一个替换,并创建了它,如下所示:

$sqlString = 'REPLACE INTO coursework
SET cwID=`'. $cwID .'`,
cwTitle=`'. $cwTitle .'`,
cwContent=`'. $cwContent .'`,
cwProgress=`'. $cwProgress .'`,
cwDue=`'. $cwDue .'`;
所有$cw[]变量都是从$\u POST方法接收的内容

我一直收到一个错误代码:“字段列表”中的1054未知列“6”—— “未知列'6'”是mysql试图调用$cwID(值为$\u POST['cwID']),而不是cwID列(它是我的表的主键)。我觉得我遗漏了一些简单而愚蠢的东西,但我以前从未使用过这种替换方法

我看到一篇关于
插入忽略到
插入。。。在重复密钥更新时
,但这两种方法听起来都比我要寻找的更具破坏性

我只是想确保,如果cwID存在并且自动递增保持不变,则更新表;如果没有ID,则添加新行。我是否应该运行SELECT查询以查看它是否存在,并适当地插入/更新?

删除用单引号(')替换字符串周围的回号(`)

MySql正在尝试查找一个以您用作值的字符串命名的列

请参见删除用单引号(')替换字符串周围的反勾号(`)

MySql正在尝试查找一个以您用作值的字符串命名的列


请参见

将反勾号替换为单引号:

$sqlString = 
 "REPLACE INTO coursework SET cwID='$cwID', cwTitle='$cwTitle', cwContent='$cwContent', cwProgress='$cwProgress', cwDue='$cwDue'";

另外,请注意,
将插入变量。

将反勾号替换为单引号:

$sqlString = 
 "REPLACE INTO coursework SET cwID='$cwID', cwTitle='$cwTitle', cwContent='$cwContent', cwProgress='$cwProgress', cwDue='$cwDue'";

另外,请注意,
将插入变量。

我尝试过,但它会使查询更加混乱<代码>错误代码:1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可在“Android 02”(cwContent=阅读并学习中的第5-6章)附近使用的正确语法\第3行的“学习Android”
@jbingman尝试通过
mysql\u real\u escape\u string来转义post数据。如果这无助于记录sql语句并发布它。回勾不会有帮助。我试过了,但它会把查询搞得更糟<代码>错误代码:1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可在“Android 02”(cwContent=阅读并学习中的第5-6章)附近使用的正确语法\第3行的“学习Android”
@jbingman尝试通过
mysql\u real\u escape\u string来转义post数据。如果这无助于记录sql语句并发布它。背部的蜱虫不会有帮助的。