Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中如何将变量从一个函数传递到另一个函数?_Php_Mysql_Variables - Fatal编程技术网

在PHP中如何将变量从一个函数传递到另一个函数?

在PHP中如何将变量从一个函数传递到另一个函数?,php,mysql,variables,Php,Mysql,Variables,我通过php连接Mysql和Oracle数据库。 现在在一个函数(比如dbInsert())中,我将插入mysql数据库的数据存储在一个变量中。现在我关闭了与Mysql的连接。 然后我打开connectio for Oracle数据库&尝试获取该变量,以便在Oracle中插入这些值。 但问题是,我并没有在Oracle连接中的那个变量中得到那个些Mysql值。。。 若我使用它w/o函数,那个么文件运行良好,但在类函数结构中,它不工作。。。 我曾尝试使用全局变量,但徒劳无功。。。 plz帮助 我只发

我通过php连接Mysql和Oracle数据库。 现在在一个函数(比如dbInsert())中,我将插入mysql数据库的数据存储在一个变量中。现在我关闭了与Mysql的连接。 然后我打开connectio for Oracle数据库&尝试获取该变量,以便在Oracle中插入这些值。 但问题是,我并没有在Oracle连接中的那个变量中得到那个些Mysql值。。。 若我使用它w/o函数,那个么文件运行良好,但在类函数结构中,它不工作。。。 我曾尝试使用全局变量,但徒劳无功。。。 plz帮助

我只发布那些函数,因为代码太大了。。。 我已将$str声明为全局变量…&在Oracle的OradInsert()中传递该变量

函数dbDisconnect()----mysql disconnect

函数oradbConnect()


那么,我应该如何将$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);
  }
 }