2013-06-21 118 views
0

我有一個問題,我有一個存儲過程插入查詢和PHP窗體...我需要通過調用我的PHP中的存儲過程將fname和lname保存到我的表中。我沒有得到任何錯誤,當我按一下按鈕,但是當我看着我的表...沒有插入的數據...數據沒有插入表

PHP代碼:

<?php 

$serverName = " BONGBONG-PC "; 
$connection = array("Database"=>"benefit_insurance"); 
$conn = sqlsrv_connect($serverName, $connection); 


$btn=$_POST['button']; 
$s_fname=$_POST['fname']; 
$s_lname=$_POST['lname']; 


$stmt = sqlsrv_prepare ($conn,'CALL insert_record(@fname, @lname)', array(&$s_fname,&$s_lname)); 

sqlsrv_execute ($stmt); 

    if(!$stmt) { 
    die(print_r(sqlsrv_errors(), true)); 
    } 

    echo "<script language=javascript>alert('ACCOUNT SAVED')</script>"; 


?> 

HTML代碼:

<div id="login_body"> 
<form method="post" name="MyForm"> 

<p class="p3"> First Name: <input type="text" name="fname" placeholder="fname" class="aaa"/> </p> 
<p class="p4"> Last Name: <input type="text" name="lname" placeholder="lname" class="aaa"/> </p> 

<input type="submit" name="button" class="login" value="LOGIN"/> 
</form> 
</div> 

在SQL Server存儲過程

USE [benefit_insurance] 
GO 

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 


ALTER PROCEDURE [dbo].[insert_record] 
@fname varchar(50) output, 
@lname varchar(50) output 
AS 
BEGIN 
insert into trylang (fname,lname) values (@fname,@lname) 


END 
+1

科技信息屬於,而不是你的問題標題。我已盡最大努力重新授予權利,但您可能需要進一步改進。 –

回答

0

你不檢查在執行語句錯誤,只在準備STA tement。

(和存儲的密碼明文是一個大否否)

+0

你可以告訴我如何做到這一點請......我一直在搞清楚這4天 – Bongsky

+0

我已經檢查了錯誤,但仍然沒有數據保存在我的數據庫 – Bongsky

0

if語句這裏:

sqlsrv_execute ($stmt); 
if(!$stmt) { ... 

檢查是否您說法是true。鑑於它不是一個空字符串或0,這將永遠如此。

你應該從sqlsrv_execute被檢查返回值:在標籤

if(!sqlsrv_execute ($stmt)) { ...