In diesem Artikel wird hauptsächlich die allgemeine Methode zum Aufrufen gespeicherter SQLServer-Prozeduren basierend auf PDO vorgestellt und die relevanten Betriebsschritte und Implementierungstechniken für den Aufruf gespeicherter SQLServer-Prozeduren basierend auf dem Yii-Framework anhand des Beispiels Friends in Need analysiert kann darauf verweisen
Das Beispiel in diesem Artikel beschreibt, wie PHP gespeicherte SQLServer-Prozeduren basierend auf PDO aufruft. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Da der gespeicherte Prozess auf der Geschäftsseite immer auf SQL Server war, müssen wir PHP verwenden, um ihn aufzurufen. Unser lokaler Prozess ist jedoch Windows , und die Online-Version ist Linux. Ich habe begonnen, einige Mechanismen des Yii-Frameworks zu verwenden, um lokal, aber nicht online, zu arbeiten. Ich habe nach vielen Lösungen gesucht und schließlich den lokal verwendeten Treiber sqlsrv gefunden Beachten Sie beim Abrufen des Ergebnissatzes, dass Windows und Linux unterschiedlich zu sein scheinen, wenn ich set nocount on hinzufüge. Es kann jedoch das letzte sein. Wenn Sie es jedoch in Linux einfügen, ist alles weg, sagte ich wütend, ich könnte sie am Ende genauso gut nehmen
Teilen Sie eine Methode mit, nachdem Sie es geklärt haben:
class StoredProcHelper { private static $type = [ 'integer'=>PDO::PARAM_INT, 'string'=>PDO::PARAM_STR, 'null'=>PDO::PARAM_NULL, 'boolean'=>PDO::PARAM_BOOL ]; private $sql = '';//此变量在下方说明 private $params = [];//此变量在下方说明 private $connect_info;//此变量在下方说明 private $pdo_connect; public function __construct($connect_info,$sql,$params){ $this->sql = 'SET NOCOUNT ON;'.$sql; $this->params = $params; $this->connect_info = $connect_info; if(!empty($this->connect_info->dsn) && !empty($this->connect_info->username) && !empty($this->connect_info->password)){ $this->pdo_connect = new PDO($this->connect_info->dsn,$this->connect_info->username, $this->connect_info->password); } } public function ExecuteProc(){ $link = $this->pdo_connect->prepare($this->sql); foreach ($this->params as $key => $value){ $link->bindParam($key,$value,self::$type[strtolower(gettype($value))]); } $link->execute(); $i = 1; $res[0] = $link->fetchAll(); while($link->nextRowset()){ $res[$i] = $link->fetchAll(); $i++; } return $res; } }
Anwendungsbeispiele:
public static function Example($connect_info,$mobile){ $sql='declare @customParam int;exec you_proc @Mobile = :mobile,@OutParam=@customParam out;select @customParam as outName;'; $params = [ ':mobile'=>$mobile ]; $pdo = new StoredProcHelper($connect_info,$sql,$params); $res = $pdo->ExecuteProc(); var_dump($res); }
Die Form der Variablen $sql und $params ist wie gezeigt im Beispiel:
Die Form der Variablen $connect_info ist wie folgt: Sie können das Formular und das Zuweisungsformular selbst ändern. Der Vorteil des Frameworks besteht darin, dass Sie die Konfiguration direkt in verschiedenen Umgebungen abrufen können. Sie müssen sie nicht selbst ändern.]:
[ 'dsn' => 'sqlsrv:Server=xxxxxxxxxx;Database=xxxxx', 'username' => 'xxxxx', 'password' => 'xxxxxxxxxxxxxxxxxxxx', 'charset' => 'utf8', ] //或 [ 'dsn' => 'dblib:host=xxxxxxxxxx;dbname=xxxxx', 'username' => 'xxxxx', 'password' => 'xxxxxxxxxxxxxxxxxxxx', 'charset' => 'utf8', ],
Das obige ist der detaillierte Inhalt vonEinführung in die Methode zur Verwendung von PDO zum Aufrufen gespeicherter SQLServer-Prozeduren mithilfe von PDO basierend auf dem Yii-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!