Wie rufe ich eine gespeicherte MySQL-Prozedur aus PHP-Code heraus auf?

Lesezeit: 2 Minuten

Wie rufe ich eine gespeicherte MySQL Prozedur aus PHP Code heraus auf
Gut

Ich habe eine gespeicherte Prozedur, die ich in MySQL erstellt habe, und möchte, dass PHP diese gespeicherte Prozedur aufruft. Was ist der beste Weg, dies zu tun?

-MySQL-Client-Version: 4.1.11
-MySQL Server-Version: 5.0.45

Hier ist meine gespeicherte Prozedur:

DELIMITER $$

DROP FUNCTION IF EXISTS `getNodeName` $$
CREATE FUNCTION `getTreeNodeName`(`nid` int) RETURNS varchar(25) CHARSET utf8
BEGIN
 DECLARE nodeName varchar(25);
 SELECT name into nodeName FROM tree
 WHERE id = nid;
 RETURN nodeName;
END $$

DELIMITER ;

Wie lautet der PHP-Code zum Aufrufen der Prozedur getTreeNodeName?

  • Exemplarische Vorgehensweise zum Erstellen einer gespeicherten MySQL-Prozedur: stackoverflow.com/a/20433501/445131

    – Eric Leschinski

    6. Dezember 2013 um 21:25 Uhr


Wie rufe ich eine gespeicherte MySQL Prozedur aus PHP Code heraus auf
Gut

Ich habe jetzt eine Lösung gefunden, indem ich verwendet habe mysqli anstatt mysql.

<?php 

// enable error reporting
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
//connect to database
$connection = mysqli_connect("hostname", "user", "password", "db", "port");

//run the store proc
$result = mysqli_query($connection, "CALL StoreProcName");

//loop the result set
while ($row = mysqli_fetch_array($result)){     
  echo $row[0] . " - " . + $row[1]; 
}

Ich habe festgestellt, dass viele Leute ein Problem mit der Verwendung haben mysql_connect, mysql_query and mysql_fetch_array.

  • Viele Leute machen Fehler, weil sie sich nicht die Mühe machen, dies zu überprüfen if ($connection instanceof mysqli) { }gleich wie if ($arr[0]=='forget checking') { }; ohne zu haben if (is_array($arr) && isset($arr[0]) && $arr[0]=='forget_checking') { }

    – ajreal

    12. November 2010 um 5:44 Uhr


  • mysqli_connect würde bei mir ohne eine or die-Anweisung am Ende nicht funktionieren: $connection = mysqli_connect(“hostname”, “user”, “password”, “db”, “port”)or die(“Error ” . mysqli_error($ Verbindung));

    – Praesagus

    7. November 2014 um 1:34 Uhr

  • Die mysql-Erweiterung ist deprecated und wird in Zukunft entfernt

    – Dhiraj Thakur

    13. September 2017 um 11:38 Uhr

1647266046 176 Wie rufe ich eine gespeicherte MySQL Prozedur aus PHP Code heraus auf
phpadmin

Sie können eine gespeicherte Prozedur mit der folgenden Syntax aufrufen:

$result = mysql_query('CALL getNodeChildren(2)');

  • +1, weil es funktioniert hat, aber mysql_query hat für alle folgenden select-Anweisungen aufgehört zu arbeiten.

    – Praesagus

    7. November 2014 um 1:35 Uhr

  • Ich nehme an, dass Sie auch eine Variable wie diese hinzufügen können: $result = mysql_query(‘CALL getNodeChildren($a)’);

    – Sboniso Marcus Nzimande

    3. Dezember 2014 um 13:07 Uhr

Wie rufe ich eine gespeicherte MySQL Prozedur aus PHP Code heraus auf
Zahra

Das ist meine Lösung mit vorbereitete Erklärungen und die gespeicherte Prozedur gibt mehrere Zeilen zurück, nicht nur einen Wert.

<?php

require 'config.php';
header('Content-type:application/json');
$connection->set_charset('utf8');

$mIds = $_GET['ids'];

$stmt = $connection->prepare("CALL sp_takes_string_returns_table(?)");
$stmt->bind_param("s", $mIds);

$stmt->execute();

$result = $stmt->get_result();
$response = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($response);

$stmt->close();
$connection->close();

Wie rufe ich eine gespeicherte MySQL Prozedur aus PHP Code heraus auf
Petah

<?php
    $res = mysql_query('SELECT getTreeNodeName(1) AS result');
    if ($res === false) {
        echo mysql_errno().': '.mysql_error();
    }
    while ($obj = mysql_fetch_object($res)) {
        echo $obj->result;
    }

1001860cookie-checkWie rufe ich eine gespeicherte MySQL-Prozedur aus PHP-Code heraus auf?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy