⑴ 存儲過程和PHP的一些問題。
1.是的,直接調取
2.php.ini的內容由你需求進行配置。;開關
3.linux確實安全性提高不少,在速度方面也好
⑵ 誰知道PHP中存儲過程是什麼意思
存儲過程是Mysql的,詳見
http://www.jb51.net/article/30825.htm
⑶ php調用oracle存儲過程與函數
對於存儲過程的源代碼,開始都需要先定義接受的參數,例如:
PROCEDURE edit_entry(
status_out OUT NUMBER,
status_msg_out OUT VARCHAR2,
id_inout IN OUT INTEGER,
title_in IN VARCHAR2,
text_out OUT CLOB,
categories_in IN list_of_numbers
);
從 PHP 中調用存儲過程 對於要從 PHP 中執行以調用過程的 SQL 語句而言,您將通常在 Oracle BEGIN ...END; 塊(稱作匿名塊)中嵌入調用。例如:
<?php
// etc.
//$sql = 'BEGIN sayHello(:name, :message); END;';
//然後,通過調用 oci_bind_by_name() 將參數綁定到 PHP 變數。 如果使用以下 DDL 語句定義了 sayHello
//:
//CREATE OR REPLACE PROCEDURE
//sayHello (name IN VARCHAR2, greeting OUT VARCHAR2)
//AS
//BEGIN
//greeting := 'Hello ' || name;
//END;
//
//注意,您可以使用 SQL*Plus 命令行運行上面的語句。將該語句保存到文件 (SAYHELLO.SQL)。接下來,使用
//SQL*Plus 登錄:
//$ sqlplus username@SID
//然後,使用 START 命令創建該過程:
//SQL> START /home/username/SAYHELLO.SQL
//以下 PHP 腳本調用該過程:$conn = oci_connect('SCOTT','TIGER') or die;
$sql = 'BEGIN sayHello(:name, :message); END;';
$stmt = oci_parse($conn,$sql);
// Bind the input parameter
oci_bind_by_name($stmt,':name',$name,32);
// Bind the output parameter
oci_bind_by_name($stmt,':message',$message,32);
// Assign a value to the input
$name = 'Harry';
oci_execute($stmt);
// $message is now populated with the output value
print "$message\n";
?>
調用程序包中的過程時,將使用句號來分隔程序包名稱與過程名稱。 可以使用以下語句指定 blog 程序包:
CREATE OR REPLACE PACKAGE blog AS
TYPE cursorType IS REF CURSOR RETURN blogs%ROWTYPE;
/*
Fetch the latest num_entries_in from the blogs table, populating
entries_cursor_out with the result
*/
PROCEDURE latest(
num_entries_in IN NUMBER,
entries_cursor_out OUT cursorType
);
/*
Edit a blog entry.If id_inout is NULL, results in an INSERT, otherwise
attempts to UPDATE the existing blog entry. status_out will have the value
1 on success, otherwise a negative number on failure with status_msg_out
containing a description
categories_in is a collection where list_of_numbers is described by
TYPE list_of_numbers AS VARRAY(50) OF NUMBER;
*/
PROCEDURE edit_entry(
status_out OUT NUMBER,
status_msg_out OUT VARCHAR2,
id_inout IN OUT INTEGER,
title_in IN VARCHAR2,
text_out OUT CLOB,
categories_in IN list_of_numbers
);
END blog;
/
⑷ PHP+MYSQL 查詢數據的存儲過程,怎麼得到結
當然要有一個鏈接資料庫類 如class sjk
$db= new sjk();
$res=$db->query("CALL test.proc_test()");
while ($arr=$res->fetch_array())
{
echo $arr["Field"] ."<br/>";
}
⑸ 在php中如何創建存儲過程,
存儲過程在資料庫里創建,用PHP引用就好了
⑹ php調用mysql存儲過程,如何實現。 我的代碼如下:
mysql存儲過程返回2個資源,第一個是執行信息,第二個是存儲過程返回結果。
mysql_*系列函數無法獲取超過1個資源,需使用mysqli或PDO代替。
PDO:
$stmt=$db->prepare("CALLpro_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);
⑺ PHP如何得到存儲過程的返回值
$db=new mysqli("localhost","ssss","aaaaa","bbbb");
mysqli_query($db,"SET NAMES utf8");
$result=$db->query("call gxtj($year,$jd)"); // gxtj是mysql的存儲過程名稱
while( $row = $result->fetch_array(MYSQLI_ASSOC)) //完成從返回結果集中取出一行
{
while ($key=key($row)){ //依次取得欄位名
$value=current($row); //依次取得欄位值
}
}
⑻ php調用mysql存儲過程(急,在線等)
關鍵就是兩點
1)define('CLIENT_MULTI_RESULTS', 131072);
2)$link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
下面就可以正常使用了,以下是例子程序。
<?php
define('CLIENT_MULTI_RESULTS', 131072);
$link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
mysql_select_db("vs") or die("Could not select database");
?>
<?php
$result = mysql_query("call get_news_from_class_id(2)") or die("Query failed:" .mysql_error());
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$line = '<tr><td><a target = _blank href=\''.$row["url"].'\'>'.$row["title"].'('.$row["page_time"].')'.'</a></td></t
r>';
echo $line;
printf("\n");
}
mysql_free_result($result);
?>
<?php
mysql_close($link);
?>
⑼ php sql怎麼執行存儲過程
php相當於執行mysql的終端,即模擬mysql的客戶端,所以符號sql標準的語句都是可以執行的。
存儲是由資料庫本身建立起來的,與php沒有關系,
具體查看mysql的命令
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body