在PHP中如何将变量从一个函数传递到另一个函数?
我通过php连接Mysql和Oracle数据库。 现在在一个函数(比如dbInsert())中,我将插入mysql数据库的数据存储在一个变量中。现在我关闭了与Mysql的连接。 然后我打开connectio for Oracle数据库&尝试获取该变量,以便在Oracle中插入这些值。 但问题是,我并没有在Oracle连接中的那个变量中得到那个些Mysql值。。。 若我使用它w/o函数,那个么文件运行良好,但在类函数结构中,它不工作。。。 我曾尝试使用全局变量,但徒劳无功。。。 plz帮助 我只发布那些函数,因为代码太大了。。。 我已将$str声明为全局变量…&在Oracle的OradInsert()中传递该变量 函数dbDisconnect()----mysql disconnect 函数oradbConnect()在PHP中如何将变量从一个函数传递到另一个函数?,php,mysql,variables,Php,Mysql,Variables,我通过php连接Mysql和Oracle数据库。 现在在一个函数(比如dbInsert())中,我将插入mysql数据库的数据存储在一个变量中。现在我关闭了与Mysql的连接。 然后我打开connectio for Oracle数据库&尝试获取该变量,以便在Oracle中插入这些值。 但问题是,我并没有在Oracle连接中的那个变量中得到那个些Mysql值。。。 若我使用它w/o函数,那个么文件运行良好,但在类函数结构中,它不工作。。。 我曾尝试使用全局变量,但徒劳无功。。。 plz帮助 我只发
那么,我应该如何将$str从Mysql传递到Oracle,以便Mysql中的数据将插入Oracle…一般来说,当您有两个函数需要共享数据时,这是对象首先存在的原因之一
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();
当然,这在您的特定情况下可能可行,也可能不可行,但这是一种流行的解决方案。更改fetch函数以返回值。注意:在循环中获取值时,我将
$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;
}
然后将返回值传递给insert函数。再次说明:我在这里使用了一个数组,如果不需要,代码可能会更简单
function oradbInsert($str){
$qry1= "INSERT INTO Test(po_number , Po_creation_date , customer_firstname , customer_lastname , customer_email , shipping_description) values(:val)";
$p= oci_parse($conn,$qry1);
oci_bind_by_name($p, ':val', $v);
foreach ($str as $v) {
oci_execute($p);
}
}
最后一点注意:这没有经过测试。请提供一些代码好吗?
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;
}
function oradbInsert($str){
$qry1= "INSERT INTO Test(po_number , Po_creation_date , customer_firstname , customer_lastname , customer_email , shipping_description) values(:val)";
$p= oci_parse($conn,$qry1);
oci_bind_by_name($p, ':val', $v);
foreach ($str as $v) {
oci_execute($p);
}
}