2017-05-04 7 views
0

mySqlでプロシージャを作成しました。それはこのように見えます。手順は何もしません

enter image description here

私は、PHPから、この手順を呼びました。

この呼び出しの後でもテーブルは空のままで、理由はわかりません。私がチェックしている

問題:

  1. 変数名
  2. 接続
  3. 構文(私は右の構文だと思います)

UPDATE:PHPコード

<?php 
 
$servername = "localhost"; 
 
$username = "root"; 
 
$password = ""; 
 
$dbName = "shoppingcartdb"; 
 

 
// Create connection 
 
$conn = new mysqli($servername, $username, $password, $dbName); 
 

 
// Check connection 
 
if ($conn->connect_error) { 
 
    die("Connection failed: " . $conn->connect_error); 
 
} 
 

 
$sql = "INSERT INTO address (Address, PostalCode, City, County, Phone, Fax) 
 
VALUES ('".$_POST["address"]."', '".$_POST["p_code"]."', '".$_POST["city_sector"]."', '".$_POST["county"]."', '".$_POST["phone"]."', '".$_POST["fax"]."')"; 
 
$conn->query($sql); 
 
$sql = "CALL Insert_User('".$_POST["username"]."', '".$_POST["f_name"]."', '".$_POST["l_name"]."', '".$_POST["psw"]."', '".$_POST["email"]."')"; 
 
if(!$conn->query($sql)) 
 
\t echo "failed"; 
 
$conn->close(); 
 
?>

UPDATE:手順 Code ScreenShot

+0

クエリがサーバー上で実行された場合、プロファイラをチェックしましたか? – Pream

+0

更新されたPHPコードを見ると、ストアドプロシージャはまったく必要ありません。 mysqli_insert_id()を使ってアドレスを挿入した後に最後に挿入したIDを取得し、後でプレーン・インサートを使用してください。 – Shadow

+0

それは働いた!ありがとうございました:) –

答えて

0
  1. あなたはセッション変数と入力し、ローカル変数を混同しています。 @id_addid_addと同じではなく、@f_nameと同じ広告f_nameではありません。したがって、テーブルに空の値を挿入しようとしています。

  2. デリミタがクエリの前後に適切に設定されていると、スクリーンショットに表示されません。 Plsはそれをチェックする。

  3. ストアドプロシージャをphpmyadminからテストして確認してください。

+0

こんにちは!私はPHPの世界では新しいです。私はちょうどそれを学び始めた。 「1」のコード例を教えてもらえますか? –

+0

どのようなコード例ですか? @ – Shadow

+0

を削除しました。@を削除しました。テーブルはまだemtyのままです。 –

関連する問題