使用存储过程插入

时间:2015-08-10 16:49:21

标签: php mysql stored-procedures

这是我的问题。我有这个脚本必须在数据库中的2个不同的表中插入数据。

<html>
<body bgcolor=#005b96>
<?php
    include "database.php";

    $ime=$_POST["p_ime"];
    $prezime=$_POST["p_prezime"];
    $broj_telefona=$_POST["p_broj_telefona"];
    $datum_rodjenja=$_POST["p_datum_rodjenja"];
    $broj_vozacke=$_POST["p_broj_vozacke"];
    $grad="";
    $connection1=mysql_connect("localhost","Admin","rentacar") or die(mysql_error());
    mysql_select_db("rentacar",$connection1) or die(mysql_error());
    $selectQuery="SELECT idgrad, ime_grada from grad";
    $result=mysql_query($selectQuery,$connection1) or die(mysql_error());
    while($row=mysql_fetch_array($result))
    {
        if($_POST["p_grad"]==$row["ime_grada"]){
        $grad=$row["idgrad"];
        }
    }
    if ($grad=="")
        header("Location:formaGrad.html");
    if ($ime!="" || $grad!=""){

    $connection2=mysql_connect("localhost","Admin","rentacar") or die(mysql_error());
    mysql_select_db("rentacar",$connection2) or die(mysql_error());
    "INSERT INTO korisnik VALUES
                (NULL,"."\"".$ime."\","."\"".$prezime."\",".$broj_telefona.",\"".$datum_rodjenja."\",".$broj_vozacke.",".$grad.")";
    mysql_query($insertQuery,$connection2) or die (mysql_error());
    }
    else{
        echo "<br><br><h1 align=\"center\">Nisu unešeni zahtjevani podaci</h1>";
    }
    $connection3=mysql_connect("localhost","Admin","rentacar") or die(mysql_error());
    mysql_select_db("rentacar",$connection3) or die(mysql_error());
    $idkorisnik=mysql_insert_id($connection3);
    $idvozilo=$_POST["p_id_vozilo"];
    $datum_iznajmljivanja=$_POST["p_datum_preuzimanja"];
    $datum_vracanja=$_POST["p_datum_preuzimanja"];
    $insertQuery2="INSERT INTO iznajmljivanje VALUES
                (NULL,".$idkorisnik.",".$idvozilo.",\"".$datum_iznajmljivanja."\",\"".$datum_vracanja."\")";
    mysql_query($insertQuery2,$connection3) or die (mysql_error());
    ?>
</body> 
</html>

在此代码中,一切正常。但我想在MySQL中使用存储过程在第一个表中插入数据。 所以,当我把:

$insertQuery="call dodajKorisnikaProvjera("."\"".$ime."\","."\"".$prezime."\",".$broj_telefona.",\"".$datum_rodjenja."\",".$broj_vozacke.",".$grad.")";

代替:

$insertQuery="INSERT INTO korisnik VALUES
                (NULL,"."\"".$ime."\","."\"".$prezime."\",".$broj_telefona.",\"".$datum_rodjenja."\",".$broj_vozacke.",".$grad.")";

我收到了这个消息:&#34;无法添加或更新子行:外键约束失败(rentacariznajmljivanje,CONSTRAINT iznajmljivanje-korisnik FOREIGN KEY({{1参考korisnik_idkorisnik)ON删除没有动作更新无动作)&#34; 所以第一次插入工作再次,我在第一个表中获得了用户数据。但第二次插入不起作用?

什么错了?如果可以,请帮忙。

以下是存储过程的代码:

idkorisnik

表&#34; korisnik&#34;有主键&#34; idkorisnik&#34;。和表&#34; iznajmljivanje&#34;有外键&#34; korisnik_id&#34;引用了&#34; idkorisnik&#34;。 我发现mysql_insert_id($ connection2)没有给出数字。我不知道为什么,因为我可以看到&#34; idkorisnik&#34;在表中。 :/ 当我把:$ idkorisnik = mysql_insert_id($ connection2);在mysql_query()之后,mysql_insert_id()返回0:/

0 个答案:

没有答案