在检查数据库中是否存在新值之后,我无法向数据库中插入新值,但更新工作正常,但是插入不起作用,只是我想知道我在哪里出错,以获取任何帮助?
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("alimcenter");
$P1=$_POST['p1'];
$P2=$_POST['p2'];
$P3=$_POST['p3'];
$P4=$_POST['p4'];
$P5=$_POST['p5'];
$P6=$_POST['p6'];
$P7=$_POST['p7'];
$P8=$_POST['p8'];
$P9=$_POST['p9'];
$req1=mysql_query("select REF from mat where REF='$P1'");
if(mysql_num_rows($req1) != 0){
$req2=mysql_query("UPDATE mat set qte=qte+$P3 where REF='$P1'");
if($req2){
echo "succes update";
}
}
if(mysql_num_rows($req1) == 0){
$req7=mysql_query("insert into mat
(REF, designation, qte, un, PU, rem,
MONTANT, tva, puf)
values ('$P1', '$P2', '$P3', '$P4', '$P5', '$P6',
'$P7', '$P8', '$P9')");
mysql_error();
if($req7){
echo "succes";
echo "<br /><a href='ajout.html'>return</a>";
}
}
?>
它只是向我显示按钮,但是当我检查数据库时,找不到新值插入
答案 0 :(得分:0)
我在这里赌博是因为您没有告诉我们是否定义了唯一键,但如果您定义了,则可以使用称为 upsert的名称:尝试使用UPDATE `orders`
SET total_amount = (SELECT COALESCE(SUM(unit_cost * quantity), 0)
FROM . . .
,然后退回到insert
(如果已经存在)。这里的键是您需要在列上定义一个唯一的键。您可以在这里详细了解-https://stackoverflow.com/a/42305283/296555
正如评论所指出的,您使用的是一个非常旧的,已弃用的API。您应该切换到update
或mysqli
。
因此,事不宜迟,欢迎来到PDO的美好世界。我应该提到的是,该代码尚未经过测试,并且不提供任何保修。如有任何疑问,请阅读此页面-https://phpdelusions.net
PDO