2017-02-25 1 views
-2

Hallo Ich bin in der Lage, die letzte eingefügte ID in einer Funktion zu erhalten, aber wie kann ich es in einer anderen Funktion verwenden, wie es als undefinierte Variable außerhalb dieser Funktion angezeigt wird.Wie bekomme ich eine lastInsertID von einer Funktion und verwende sie in einer anderen Funktion? PDO

Dank

EDIT: Code aus class.user.php

public function one($first) 
    { 
     try 
     { 
      $stmt = $this->db->prepare("INSERT INTO table1(first) VALUES(:first)"); 
      $stmt->bindParam(':first', $first); 
      $stmt->execute(); 

      $newId = $this->db->lastInsertId(); 

      return $stmt; 
      return $newId; 

     } 
     catch(PDOException $e) 
     { 
      echo $e->getMessage(); 
     } 
    } 

    public function two($array, $newID) 
    { 
     try 
     { 
      foreach($array as $arrayText){ 
       $this->db->beginTransaction(); 
       $stmt = $this->db->prepare("INSERT INTO table2(arrayText, table1_id) VALUES(:array, :newId)"); 
       $stmt->bindParam(':array', $arrayText); 
       $stmt->bindParam(':newId', $newId); 
       $stmt->execute(); 



       $this->db->commit(); 

      } 

      return $stmt; 
     } 
     catch(PDOException $e) 
     { 
      echo $e->getMessage(); 
     } 
    } 

php code 

if(isset($_POST['btn'])) 
{ 
    $first = trim($_POST['first']); 
    $array = $_POST['array']; 


    if($user->one($first) && $user->two($array, $newId)) 
    { 
     Print '<script>alert("Added to database");</script>'; //Prompts the user 
    } 

} 

Antwort

0

Return diesem Wert return Anweisung in der ersten Funktion, rufen Sie dann diese Funktion in einem anderen. Beispiel

<?php 
function returnValue() { 
    $someVar = 'hello'; 
    return $someVar; //or just 'hello' instead 
} 

function sayHello() { 
    echo returnValue(); //or 
    $helloText = returnValue(); // $helloText stores 'hello' string now 
} 

Sie können nicht zwei return Aussagen einzeln verwenden. In Ihrem Code wird der Wert $stmt zurückgegeben, aber $newId wird nicht zurückgegeben. Wenn Sie 2 Werte zurückgeben möchten, müssen Sie ein Array erstellen.

z.

<?php 
return array($stmt, $newId); 

In Funktion zwei() aufrufen, jetzt nur one($first)

+0

Wolen verwenden - ist mein lastInsertId gespeichert wie $ newID, die ich in der Lage bin zurück in die erste Funktion. In der zweiten Funktion sollte ich $ newID2 = functionOne ($ newID); ? Danke – liquidtabs

+0

Können Sie Ihren Code zeigen, indem Sie den ersten Beitrag bearbeiten? Ich werde es mir ansehen und meine Antwort dann bearbeiten. – Wolen

+0

Ich habe meinen Code jetzt bearbeitet. – liquidtabs

0

Sie Rückkehr wie diese

<?php 
function myfunction() 
{ 
    $var='My variable'; 
    return $var; 
} 

echo myfunction(); 
Verwandte Themen