-1
我有這段代碼插入數據到MySQL。當我嘗試調用函數register_emp()時發生錯誤。你能告訴我該怎麼做才能解決這種錯誤。謝謝。爲什麼我得到這個錯誤「SQLSTATE [HY093]:無效的參數號:參數未定義」?
if($user->register_emp($last,$first,$middle,$middle,
$address,$contact,$email,$birth,$gender,
$status,$citizen,$position,$dependent))
{
try
{
$stmt = $user->runQuery("SELECT MAX(ID) as LastID from employeeprofile");
$stmt->execute(array());
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1)if($stmt->rowCount() == 1){
$owner=$userRow['LastID'];
if($user->register_contrib($owner,$sss,$tin,$pagibig,$phil)){
$user->redirect('admin1.php');
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
這是我試圖調用的register_emp函數。
public function register_emp($last,$first,$middle,$address,
$zip,$contact,$email,$birth,
$gender,$status,$citizen,$position,$dependent)
{
try
{
$stmt = $this->conn->prepare("INSERT INTO `proll`.`employeeprofile`
(`Lastname`, `Firstname`, `Middlename`, `Address`, `ZIP`, `Contact`, `Email`, `Birthdate`, `Gender`, `Status`, `Citizenship`, `Position`, `Dependent`) VALUES
(:last,:first,:middle,:address,:zip,:contact,:email,:birth,:gender,:status,:citizenship,:position,:dependent)");
$stmt->bindparam(":last", $last);
$stmt->bindparam(":first", $first);
$stmt->bindparam(":middle", $middle);
$stmt->bindparam(":address", $address);
$stmt->bindparam(":zip", $zip);
$stmt->bindparam(":contact", $contact);
$stmt->bindparam(":email", $email);
$stmt->bindparam(":birth", $birth);
$stmt->bindparam(":gender", $gender);
$stmt->bindparam(":status", $status);
$stmt->bindparam(":citizen", $citizen);
$stmt->bindparam(":position", $position);
$stmt->bindparam(":dependent", $dependent);
$stmt->execute();
return $stmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
它似乎不是來自runQuery。檢查register_emp和register_contrib並查找錯誤中的行號/文件。 – aynber
您最好向我們展示'runQuery()'的作用。如果它運行了一個' - > query()',它可以解釋一些問題 – RiggsFolly
我猜想在一個不需要任何參數的' - > execute()中傳遞的數組參數可能是問題。試試'$ stmt-> execute()',看看錯誤是否消失 – RiggsFolly