Php 如何检查阵列中是否存在数据库
我尝试在插入数据库之前检查数据库行中是否存在值 这是我的密码。如果数据库中有数组值,我想签入数组值。如果存在“kullanici”和“totoid”,则不要插入数据库Php 如何检查阵列中是否存在数据库,php,mysql,Php,Mysql,我尝试在插入数据库之前检查数据库行中是否存在值 这是我的密码。如果数据库中有数组值,我想签入数组值。如果存在“kullanici”和“totoid”,则不要插入数据库 if($sonuc == 1) { $arr[] = '( "' . $mac->kullanici . '", "5",
if($sonuc == 1) {
$arr[] = '(
"' . $mac->kullanici . '",
"5",
"' . $mac->totoid . '"
)';
}
if($sonuc == 2) {
$arr[] = '(
"' . $mac->kullanici . '",
"10",
"' . $mac->totoid . '"
)';
}
if($sonuc == 3) {
$arr[] = '(
"' . $mac->kullanici . '",
"15",
"' . $mac->totoid . '"
)';
}
if($sonuc == 4) {
$arr[] = '(
"' . $mac->kullanici . '",
"20",
"' . $mac->totoid . '"
)';
}
if($sonuc == 5) {
$arr[] = '(
"' . $mac->kullanici . '",
"25",
"' . $mac->totoid . '"
)';
}
}
$sql = $this->db->query("INSERT INTO kazananlar (kullanici, kazanci, totoid) VALUES " . implode(',', $arr));
我建议使用。这种技术的优点是可以使用单个查询,因此不必担心可能的竞争条件
首先在列kullanici
和tototoid
上创建唯一约束:
create unique index idx_kazananlar on kazananlar(kullanici, totoid);
然后,您可以执行以下操作:
insert into kazananlar (kullanici, kazanci, totoid)
values (...)
on duplicate key update kullanici = values(kullanici)
数据库检查是否已经存在具有相同
kullanici
和tototoid
的行;如果是,则重复键上的子句将执行禁止操作。像在值中一样内爆。我不想更新。bcs稍后,我将使用新TOTOID向用户添加新点。有可能吗?@Kritik:它会更新到一个已经存在的值。所以这实际上是一个no-op(它不会改变现有的行)。我如何将其写入到值?检查totoid和kullanici以后是否在duplicate上运行。@Kritik:查询就是这样做的。您可以阅读我在答案中链接的文档,并在应用程序中尝试查询;检查与您的MariaDB服务器版本相对应的手册,了解在第25行插入kazananlar(kullanici、kazanci、totoid)值(“s3dfsaa”、“25”、“47196”)、((“asdasda”、“25”、“47196”)、(“awdaw”、“15”、“47196”)、(“32434234”、“20”、“47196”)、(“admin”、“5”)中使用的正确语法,“47196”),(“aslan Akbey”,“10”,“47196”)在重复键上更新集kullanici=values(kullanici),其给出的类似于此错误。