Php 如果mysql与POST不存在,则插入行
我已经阅读了前面问题中的所有信息,我也阅读了,但不幸的是,我没有得到肯定的回答。 我想把安卓发布的信息存储到数据库中 前提是该信息尚不可用 这是我的php代码,从Android发送信息没有问题:Php 如果mysql与POST不存在,则插入行,php,android,exists,Php,Android,Exists,我已经阅读了前面问题中的所有信息,我也阅读了,但不幸的是,我没有得到肯定的回答。 我想把安卓发布的信息存储到数据库中 前提是该信息尚不可用 这是我的php代码,从Android发送信息没有问题: 您可以做的一件事是确保签出页面表中有主键或唯一键,而不是执行if-else,而是执行try/catch。您的代码每次都会执行,但每个代码只插入一条记录,例如(假设代码是PK)。 另一种方法是在插入之前运行查询,检查是否已插入此记录,并且仅在查询未返回结果时执行插入。我只是在重复密钥更新时添加。 这就是
您可以做的一件事是确保签出页面表中有主键或唯一键,而不是执行if-else,而是执行try/catch。您的代码每次都会执行,但每个代码只插入一条记录,例如(假设代码是PK)。
另一种方法是在插入之前运行查询,检查是否已插入此记录,并且仅在查询未返回结果时执行插入。我只是在重复密钥更新时添加。
这就是解决方案:
$strSQL = " INSERT INTO page (id , code , username ) VALUES('$id' , '$code' , '$username' ) ON DUPLICATE KEY UPDATE code='$code')";
谢谢大家的帮助 你能再描述一下这个问题吗?您当前的代码是做什么的?它是否插入重复记录?它不起作用吗?有什么错误吗?@Oper,你能解释一下你遇到的问题吗?如果希望该行在数据库中唯一,请确保输入的键之一唯一。您的代码容易受到攻击。您应该通过或使用带绑定参数的准备语句。有一些很好的例子。还有一些建议——不要对布尔字段使用像TRUE
和FALSE
这样的字符串。而是使用在布尔上下文中正确计算的值,如0和1。“当尚未添加行时”是指具有相同值的整行吗?或者只是该代码的任何一行?永远不要依靠选择的结果来确定是否可以随后插入。