php調用mysql的存儲過程(php 存儲過程)

本文目錄一覽:

php 調用mysql存儲過程

bean id=”propertyPlaceholderConfigurer” class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”

configure:3427: gcc –version 5

i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)

Copyright (C) 2007 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

怎麼寫mysql存儲過程,並用php調用它?

實現原理

首先,需要知道怎麼寫mysql存儲過程,了解mysq存儲過程語言,

其次,使用mysql工具創建存儲過程。

最後,通過mysql_query()函數執行mysql變量的設置和mysql存儲過程及返回值。

具體代碼如下:

mysql存儲過程代碼

create procedure pro_name(user_id int)

begin

………

end

2.  PHP代碼

$host     = “localhost”;

$user     = “root”;

$password = “232412”;

$db       = “user_db”;

$dblink   = mysql_connect($host,$user,$password)or die(“can’t connect to mysql”);

mysql_select_db($db,$dblink)or die(“can’t select user_db”);

$user_id  = 1;

$res      = mysql_query(“set @a=$user_id”,$dblink);

$res      = mysql_query(“call pro_name(@a)”,$dblink);

php調用返回多結果的mysql存儲過程

直接處理存儲過程的輸出參數即可。

調用存儲過程的方法。

a。如果存儲過程有 IN/INOUT參數,聲明一個變量,輸入參數給存儲過程,該變量是一對,

一個php變量(也可以不必,只是沒有php變量時,沒有辦法進行動態輸入),一個Mysql

變量。

b。如果存儲過程有OUT變量,聲明一個Mysql變量。

mysql變量的聲明比較特殊,必須讓mysql服務器知道此變量的存在,其實也就是執行一條mysql語句。

入set @mysqlvar=$phpvar ;

c。使用mysql_query()/mysql_db_query()執行mysql 變量聲明語句。

mysql_query(“set @mysqlvar【=$pbpvar】”);

這樣,在mysql服務器裡面就有一個變量,@mysqlar。如果時IN參數,那麼其值可以有phpar傳入。

d。 如果時存儲過程。

1。執行 call procedure()語句。

也就是mysql_query(“call proceduer([var1]…)”);

2. 如果有返回值,執行select @ar,返回執行結果。

mysql_query(“select @var)”

接下來的操作就和php執行一般的mysql語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。

如果時函數。 直接執行 select function() 就可以了。

傳出參數的存儲過程:

$sql = “

create procedure myproce3(out score int)

begin

set score=100;

end; “;

mysql_query($sql);//創建一個myproce3的存儲過程

$sql = “call test.myproce3(@score);”;

mysql_query($sql);//調用myproce3的存儲過程

$result = mysql_query(‘select @score;’);

$array = mysql_fetch_array($result);

echo ‘pre’;print_r($array);

php調用mysql存儲過程,如何實現。 我的代碼如下:

mysql存儲過程返回2個資源,第一個是執行信息,第二個是存儲過程返回結果。

mysql_*系列函數無法獲取超過1個資源,需使用mysqli或PDO代替。

PDO:

        $stmt = $db-prepare(“CALL pro_rb_save(?,?,@return_msg);”);  

        $stmt-bindParam(1, $a);

        $stmt-bindParam(2, $b);

        $stmt-execute ();

        $outputArray = $db-query(“select @return_msg”)-fetch(PDO::FETCH_ASSOC);

        

        var_export($return_msg);

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/280359.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-21 13:03
下一篇 2024-12-21 13:03

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27

發表回復

登錄後才能評論