2017-10-27 3 views
1

Ich habe mehrere Beispiele zum Aufrufen einer MySQL gespeicherten Prozedur von PHP, aber keine haben mir geholfen. Die gespeicherte Prozedur funktioniert, wenn sie in PHPMyAdmin ausgeführt wird, aber ich habe Probleme, sie aus dem Internet aufzurufen.Rufen Sie MySQL Stored Procedure von PHP

<?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

sollten Sie hier eine '1' als Fehler erhalten, sobald Sie die richtige Variable verwendet haben. Schau dir an, was du nochmal gemacht hast. –

+0

Also sollte ich $ result zu $ ​​sql ändern? – hootie

+1

Sie brauchen die zweite mysqli_query überhaupt nicht. Siehe @ Fred-ii-s Antwort unten, er deckt alles ab, was Sie wissen müssen. – chris85

Antwort

2

Es gibt 2 Probleme hier.

Sie fragen zweimal und mit der falschen Variablen $sql statt $result.

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

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

alles, was getan werden muss, ist dies:

if ($result) 

und ein else die (mögliche) Fehler zu behandeln.

Fehler melden und mysqli_error($conn) wäre Ihre wahren Freunde gewesen.

Randbemerkung: Sie sollten wirklich obwohl richtige Verspannung Techniken verwenden, wie zum Beispiel:

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

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

Es während der Codierung hilft auch, und mit einem Editor für Paar passend.

Verwandte Themen