如何在PHP中将变量从一个函数传递给其他函数?
问题描述:
我通过php连接Mysql & Oracle数据库。 现在在一个函数中说dbInsert(),我有存储数据插入到mysql数据库中的一个变量。现在我关闭与Mysql的连接。 然后我打开连接Oracle数据库&试图获取该变量,以便我可以在Oracle中插入这些值。 但问题我没有得到那些在该变量的Oracle连接的Mysql值... 如果我使用它的W/O功能,然后文件运行良好,但在班级功能的结构,它不工作... 我曾尝试使用全局变量而白费...... plz帮助的努力......如何在PHP中将变量从一个函数传递给其他函数?
我张贴只有那些功能代码太大...... 我宣布$ str作为全局变量...... &通过在Oracle的oradbInsert()。
function dbFetch(){
$a = mysql_insert_id();
$result2 = mysql_query("SELECT * FROM sample where order_primary = $a");
while($row = mysql_fetch_array($result2)){$str = "'".$row["po_number"]."',"."'".$row[created_at]."',"."'".$row["ustomer_firstname"]."',"."'".$row["customer_lastname"]."',"."'".$row["customer_email"]."',"."'".$row["shipping_description"];
echo $str;}
功能dbDisconnect()---- MySQL的断开
功能oradbConnect()
function oradbInsert()
{
$qry1= "INSERT INTO Test(po_number , Po_creation_date , customer_firstname , customer_lastname , customer_email , shipping_description) values(".$str");
$p= oci_parse($conn,$qry1);
oci_execute($p);
}
所以,我应该如何通过$海峡从MySQL到Oracle,以便从MySQL数据插入进入Oracle ...
答
更改获取函数以返回值。注意:我在数组中创建了$str
数组,因为您正在循环中获取值。如果您只选择一行,请更改它。
function dbFetch(){
$a = mysql_insert_id();
$result2 = mysql_query("SELECT * FROM sample where order_primary = $a");
$str = array();
while($row = mysql_fetch_array($result2)){
$str[] = "'".$row["po_number"]."',"."'".$row[created_at]."',"."'".$row["ustomer_firstname"]."',"."'".$row["customer_lastname"]."',"."'".$row["customer_email"]."',"."'".$row["shipping_description"]."'";
}
return $str;
}
然后将返回值传递给插入函数。再说一遍:我在这里使用了一个数组,如果不需要,代码可能会更简单。
最后说明:未经测试。
答
一般而言,当你有两个需要共享数据的函数时,首先是对象存在的原因之一。
class ImportantData {
protected $some_data;
public function retrieveData() {
$this->some_data = 'retrieved from db';
}
public function useData() {
// use $this->some_data for something
}
}
$importantData = new ImportantData();
$importantData->retrieveData();
$importantData->useData();
当然这可能或可能不适用于您的具体情况,但它是一种流行的解决方案。
你能提供一些代码吗? – 2012-03-15 11:52:46
请你提供一些代码? – Suleman 2012-03-15 11:53:38
不可理解的问题 – 2012-03-15 12:07:30