例如,我有一张桌子:
$(document).delegate('#cover-image','change', function(e){
$('.update-img').hide();
$('#Image1').hide();
$('#loader1').show();
var reader = new FileReader();
reader.onload = function (e) {
var image = new Image();
//Set the Base64 string return from FileReader as source.
image.src = e.target.result;
$('#Image1').attr("src",image.src);
image.onload = function () {
var height = this.height;
var width = this.width;
// alert(height+"and"+width);
var jcrop_api = $('#Image1').Jcrop({
trueSize: [width, height],
onChange: SetCoordinates,
onSelect: SetCoordinates
})
}
}
reader.readAsDataURL($(this)[0].files[0]);
// jcrop_api.destroy();
});
我如何防止居住在第6大道17号的重复录入John Smith,但允许住在Devoe Ave的一些John Smith?
我有更多列,但我想防止重复只基于FName,LName,Street和Number ......
答案 0 :(得分:1)
在FName,LName,Street和Number上创建唯一索引... 这将使插入重复的insert语句失败,然后您可以在代码中捕获异常并在发生这种情况时执行某些操作。 我已经更新了我的答案,包括一个PDO示例:
<?php
$dbhost = "localhost";
$dbname = "pdo";
$dbusername = "root";
$dbpassword = "your password";
$link = new PDO("mysql:host=$dbhost;dbname=$dbname","$dbusername","$dbpassword");
$statement = $link->prepare("INSERT INTO testtable(fname, lname, street, number)
VALUES(:fname, :lname, :street, :number)");
try {
$statement->execute(
array(
'fname' => 'John',
'lname' => 'Smith',
'street' => '6th Ave',
'number' => '17',
)
);
} catch (PDOException $e) {
if ($e->errorInfo[1] == 1062) {
// duplicate entry
} else {
//other error
}
}
答案 1 :(得分:0)
第一步是在表格上设置一个唯一键,如下所示:
ALTER TABLE table ADD UNIQUE KEY (FName,LName, Street, Number)
然后使用INSERT IGNORE
将数据添加到其中。任何导致这两列中的重复条目组合的INSERTS现在将返回MySQL错误而不是通过。
注意:使用INSERT
后,UNIQUE
语句会被悄悄忽略。