2017-10-27 34 views
1

PHPからMySQLストアドプロシージャを呼び出す方法についていくつかの例を見てきましたが、何も私を助けませんでした。ストアドプロシージャはPHPMyAdminの内部で実行されますが、Webから呼び出す際に問題があります。PHPからMySQLストアドプロシージャを呼び出す

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "dbname"; 

$conn = new mysqli($servername, $username, $password, $dbname); 

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

$result = mysqli_query($conn,"CALL standings_build()"); 

if (mysqli_query($conn,$sql)) 
    header('refresh:1; url=schedule_main_scores.php'); 
else 
    echo "failed"; 

?> 
+1

正しい変数を使用すると、ここでエラーとして「1」が得られるはずです。あなたが何をやったかを見てください。 –

+0

$ resultを$ sqlに変更する必要がありますか? – hootie

+1

2番目の 'mysqli_query'はまったく必要ありません。以下の@ Fred-ii-sの答えをご覧ください。彼はあなたが知る必要があるすべてをカバーしています。 – chris85

答えて

2

ここに2つの問題があります。

ではなく、$sqlという間違った変数を使用して、の2回のクエリを実行しています。

$result = mysqli_query($conn,"CALL standings_build()"); 

if (mysqli_query($conn,$sql)) 
    ^^^^^^^^^^^^ calling the query twice 
         ^^^^ wrong variable, undefined 

行われる必要があることすべてはこれです:

if ($result) 

と(可能な)エラーを処理するelse

エラー報告とmysqli_error($conn)は本当の友達でしたか?

サイドノート:それはまた、コーディング時にペア用のエディタに役立ちます

if ($result){ 
    echo "Success"; 
} 

else { 
    echo "The query failed because of: " . mysqli_error($conn); 
} 

:あなたは本当にのような、しかし、適切な補強技術を使用する必要がありますマッチング。

関連する問題