adi*_*adi -2 php mysql select sql-insert
如果一行已经存在,我想检查我的sql表.如果我的表中不存在数据,我想保存数据.我在选择查询中使用但它不起作用.
这是我的代码:
$sql = "INSERT INTO searchtable (word, position, count) VALUES (:word , :position, :count)";
$statement = $db->prepare($sql);
$temp="SELECT COUNT(word) AS searchtableFromword FROM searchtable WHERE word=$title" ;
echo $temp;
if($temp== 0 )
{
$statement->execute(array(
'word' => $title,
'position' => $fileNum,
'count' => $titleVal
));
}
Run Code Online (Sandbox Code Playgroud)
如果您只想在不存在时插入记录,只需使用INSERT IGNORE
$sql = "INSERT IGNORE INTO searchtable (word, position, count) VALUES (:word , :position, :count)";
$statement = $db->prepare($sql);
Run Code Online (Sandbox Code Playgroud)
这将确保现有行保持不变,如果记录不存在,将插入新行.
如果使用IGNORE关键字,则会忽略执行INSERT语句时发生的错误.例如,如果没有IGNORE,则复制表中现有UNIQUE索引或PRIMARY KEY值的行会导致重复键错误,并且语句将中止.使用IGNORE,该行将被丢弃并且不会发生错误.虽然重复键错误没有,但忽略错误可能会生成警告.
当然,为了获得成功,您需要在感兴趣的列上使用唯一索引 word