您好我能够在一个函数中获取最后一个插入的ID,但是如何在另一个函数中使用它,因为它在该函数外部时显示为未定义的变量。
由于
编辑: 来自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
}
}
答案 0 :(得分:0)
在第一个函数中使用return
语句返回此值,然后在另一个函数中调用此函数。实施例
<?php
function returnValue() {
$someVar = 'hello';
return $someVar; //or just 'hello' instead
}
function sayHello() {
echo returnValue(); //or
$helloText = returnValue(); // $helloText stores 'hello' string now
}
您不能逐个使用两个return
语句。在您的代码中,将返回$stmt
的值,但$newId
不会。如果要返回2值,则必须创建一个数组。
例如
<?php
return array($stmt, $newId);
在函数二()现在只需调用
one($first)
答案 1 :(得分:0)
你可以像这样使用
<?php
function myfunction ()
{
$var='My variable';
return $var;
}
echo myfunction();