Php 如何更新sql数据库

Php 如何更新sql数据库,php,mysql,Php,Mysql,我正在使用自制的搜索引擎制作一个网站,我想把人们的搜索词($search)放到数据库中。如果数据库中已经有$search,我希望相应的数字(表中的列Aantal)在何时增加。 我成功地在表中添加了一个新的searchterm,但没有更新表中已有的searchterm。它只是创建一个Aantal=1的新条目。 这是我的代码,searchterms是db和表的名称,Zoekterm是searchterms所在列的名称: 对不起,我的英语很差:-) if($search!=null){ $conn=n

我正在使用自制的搜索引擎制作一个网站,我想把人们的搜索词($search)放到数据库中。如果数据库中已经有$search,我希望相应的数字(表中的列Aantal)在何时增加。 我成功地在表中添加了一个新的searchterm,但没有更新表中已有的searchterm。它只是创建一个Aantal=1的新条目。 这是我的代码,searchterms是db和表的名称,Zoekterm是searchterms所在列的名称:

对不起,我的英语很差:-)

if($search!=null){
$conn=newmysqli($servername、$username、$password、$dbname);
if(“从searchterms中选择*,其中Zoekterm='{$search}'”){
$inserts=“插入到searchterms值(“$search.”、“.1.”)中;
如果($conn->query($inserts)==FALSE){
回显“错误:”.$inserts.“$conn->错误;
}
}
elseif(!“从searchterms中选择*,其中Zoekterm='{$search}'”){
$i=mysqli_查询($conn,“从searchterms中选择Aantal,其中Zoekterm='{$search}'”);
$j=mysqli\u fetch\u行($i);
foreach($j作为$k){
$k++;
回声“$k

”; } $sql=“UPDATE searchterms SET Aantal='$k',其中Zoekterm='$search'; } $conn->close(); }
这是完全错误的:

if ("SELECT * FROM searchterms WHERE Zoekterm = '{$search}'"){
if(“string”)
将始终计算为
true
——这些不是查询。它们是字符串,碰巧包含一些看起来像sql的字符。在将文本/sql发送到数据库并执行之前,它不会成为查询


最重要的是,你很容易受到

的攻击,你能解释一下我必须如何解决这个问题吗?执行这些查询。您已经在使用insert操作了,所以我不知道为什么您认为可以将sql转储到一个字符串中,然后在不调用->exec()或->query()的情况下神奇地显示结果,所以我添加了$conn->exec($sql);就在我声明$sql的行下面,但它仍然不起作用。。。我还有很多东西要学
if ("SELECT * FROM searchterms WHERE Zoekterm = '{$search}'"){