ik heb een stored procedure gemaakt die als er niks word in gevuld een fout terug geeft nu krijg ik een 500 error als ik niets selecteer terwijl hij dan in de value $fout wat moet zetten. kies ik wat anders dan kies contactpersoon werkt het gewoon. wat kan dat wezen. het gaat alleen fout als ik hem op kies contactpersoon laat staan alsof ik die value -1 niet goed er in ehb staan

stored procedure getest op database werkt

ALTER PROCEDURE [dbo].[spAdresToevoegen] 
	-- Add the parameters for the stored procedure here
	@Relatieid int = -1,
	@Plaats nvarchar(50),
	@Straat nvarchar(50),
	@Huisnummer nvarchar (8),
	@Postcode nvarchar(30),
	@Landid nvarchar(3),
	@Opmerking nvarchar(max),
	@Contactid int,  
	@foutmelding nvarchar(100) output 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
if @Contactid <> -1
begin  
    -- Insert statements for procedure here
INSERT INTO [dbo].[adressen]
           ([relatie_id]
           ,[straat]
           ,[huisnummer]
           ,[postcode]
           ,[plaats]
           ,[land_id]
           ,[opmerking]
           ,[contact_id]
           )
           
     VALUES
           (@Relatieid,
            @Straat,
            @Huisnummer,
            @Postcode,
            @Plaats,
            @Landid,
            @Opmerking,
            @Contactid
           )

ENd
else 
begin 
set @foutmelding = 'dit gaat fout'
End 
end


het selectbox script

<tr>
 <td>Contactpersoon adres:</td>
 <td><select name="opdrachtid" STYLE="width: 145px">
<option value="-1">Kies contactpersoon</option>
 <?php
$sql = "{CALL spOpdrachtgeverBox (@Opdrachtgeverid=:opdrachtgever)}";
$stmt = $db->prepare($sql);
	
$opdrachtgeverid = $_SESSION['relatie'];	
	
$stmt->bindParam(':opdrachtgever',$opdrachtgeverid, PDO::PARAM_STR);
$stmt->execute();
foreach ($stmt->fetchall(PDO::FETCH_ASSOC) as $row) {
    echo printf('<option value="%d">%s</option>', $row['id'], $row['naam']);
}

	
?>
 
 </select></td>
 </tr>


het script wat het verwerkt wat het na de database toe schrijft

<?php
error_reporting(-1);
ini_set('display_errors', 1);
include '/logincheck.php';

include '/verbinding.php';
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "{call spAdresToevoegen (@Relatieid=:relatieid,@Plaats=:plaats,@Straat=:straat,@Huisnummer=:huisnummer,@Postcode=:postcode,@Landid=:landid,@opmerking=:opmerking,@Contactid=:opdrachtgever,@foutmelding=:fout)}";
$stmt = $db->prepare($sql);

$relatieid = $_SESSION['relatie'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$landid = $_POST['landid'];
$opmerking = $_POST['opmerking'];
$opdrachtgever = $_POST['opdrachtid'];

$stmt->bindParam(':relatieid',$relatieid, PDO::PARAM_STR);
$stmt->bindParam(':plaats',$plaats, PDO::PARAM_STR);
$stmt->bindParam(':straat',$straat, PDO::PARAM_STR);
$stmt->bindParam(':huisnummer',$huisnummer, PDO::PARAM_STR);
$stmt->bindParam(':postcode',$postcode, PDO::PARAM_STR);
$stmt->bindParam(':landid',$landid, PDO::PARAM_STR);
$stmt->bindParam(':opmerking',$opmerking, PDO::PARAM_STR);
$stmt->bindParam(':opdrachtgever',$opdrachtgever, PDO::PARAM_STR);
$stmt->bindParam(':fout',$fout, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT,100);
$stmt->execute();

print $fout;


?>


[size=xsmall]Toevoeging op 18/04/2012 10:06:16:[/size]

sorry te snel wat gepost structuur neit goed gedaan param_int helemaal over me hoofd gezien dat het gewoone structuur is.

Reageren