这是我的问题。我有这个脚本必须在数据库中的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;无法添加或更新子行:外键约束失败(rentacar
。iznajmljivanje
,CONSTRAINT iznajmljivanje-korisnik
FOREIGN KEY({{1参考korisnik_id
(korisnik
)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:/