我无法插入新值

时间:2019-01-08 14:01:10

标签: php sql

在检查数据库中是否存在新值之后,我无法向数据库中插入新值,但更新工作正常,但是插入不起作用,只是我想知道我在哪里出错,以获取任何帮助?

<?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>";
    }
}
?>

它只是向我显示按钮,但是当我检查数据库时,找不到新值插入

1 个答案:

答案 0 :(得分:0)

我在这里赌博是因为您没有告诉我们是否定义了唯一键,但如果您定义了,则可以使用称为 upsert的名称:尝试使用UPDATE `orders` SET total_amount = (SELECT COALESCE(SUM(unit_cost * quantity), 0) FROM . . . ,然后退回到insert(如果已经存在)。这里的键是您需要在列上定义一个唯一的键。您可以在这里详细了解-https://stackoverflow.com/a/42305283/296555

正如评论所指出的,您使用的是一个非常旧的,已弃用的API。您应该切换到updatemysqli

因此,事不宜迟,欢迎来到PDO的美好世界。我应该提到的是,该代码尚未经过测试,并且不提供任何保修。如有任何疑问,请阅读此页面-https://phpdelusions.net

PDO