将一个函数变量作为参数传递给类的另一个函数


passing one function variable as a argument to another function of a Class

我是PHP新手。我正在尝试的是,我已经执行了插入,我将不得不获取它的id,所以我使用;insert_lastid();函数与mysqli_last_insert_id相同,所以不要与之混淆。我试图在最后一个id的基础上保留最后一个id,我将在另一个函数中执行select操作这是将更清楚我的问题的代码。此功能用于插入

public function cars_insert($_POST,$path) {
    $this->insert_query="insert into `_cars` (`_year`,`_make`,`_model`,`_version`,`_city`,`_color`,`_mileage`,`_engine_capacity`,                                                                                 `_engine_type`,`_assembly`,`_image`)VALUES('" .$_POST['year'] . "','" .$_POST['make'] . "','" .$_POST['model'] . "','" .$_POST['version'] . "','" .$_POST['city'] . "','" .$_POST['color'] . "','" .$_POST['mileage'] . "','" .$_POST['engine_capacity'] . "','" .$_POST['engine_type'] . "','" .$_POST['assembly'] . "','" .$path . "')";
    return $this->insert();
    global $car;
    $this->car=insert_lastid();
}

这是它将在insert_lastid(); 的基础上选择的第二个功能

 public function cars_id($this->car){
    $this->select_query="SELECT * FROM `_cars` WHERE `_id`='$this->car'";
    return $this->select();
}
没有设置ID的原因是在设置变量之前有一个return语句。当您点击return语句时,函数将停止执行。移动代码,以便在函数返回之前完成变量赋值。
$insert = $this->insert();
$this->car=insert_lastid();
return $insert;

global $car语句和cars_id中的参数都是不必要的,因为$this->car是类的成员,并且可以从该类的任何成员函数访问,而不必像对待普通变量那样传入或全局化。

public function cars_id(){
    $this->select_query="SELECT * FROM `_cars` WHERE `_id`='$this->car'";
    return $this->select();
}

附带说明一下,您的代码当前非常容易受到SQL注入攻击,除非$this->insert()中有某种代码在运行SQL语句之前检查它们。在查询中使用所有$_POST变量之前,请确保正确转义这些变量,或者使用准备好的语句。