我正在嘗試使用一個函數來執行我的所有 PDO 查詢。我在使用該函數時遇到 500 錯誤。如果我不使用該函數,我能夠成功執行代碼。您會注意到下面的工作代碼塊和非工作代碼塊之間的唯一區別是函數的使用。為什么在函數內部調用代碼時會失???作品:try { $conn = new PDO($dsn, $username, $password, $options);}catch (PDOException $e){ echo "Connection failed: " . $e->getMessage();}$info = array();$info['fname'] = $_POST['fname'];$info['lname'] = $_POST['lname'];$info['email'] = $_POST['email'];$info['password'] = password_hash($_POST['password'], PASSWORD_DEFAULT);$info['datecreated'] = date("Y-m-d H:i:s");$sql = "INSERT INTO Users (fname, lname, email, password, datecreated)VALUES (:fname, :lname, :email, :password, :datecreated)";try { $stmt=$conn->prepare($sql); $stmt->execute($info);}catch (PDOException $e){ echo $sql . "PDO query failed: <br>" . $e->getMessage();}不起作用try { $conn = new PDO($dsn, $username, $password, $options);}catch (PDOException $e){ echo "Connection failed: " . $e->getMessage();}$info = array();$info['fname'] = $_POST['fname'];$info['lname'] = $_POST['lname'];$info['email'] = $_POST['email'];$info['password'] = password_hash($_POST['password'], PASSWORD_DEFAULT);$info['datecreated'] = date("Y-m-d H:i:s");$sql = "INSERT INTO Users (fname, lname, email, password, datecreated)VALUES (:fname, :lname, :email, :password, :datecreated)";function pdoquery ($sql, $info){ try { $stmt=$conn->prepare($sql); $stmt->execute($info); } catch (PDOException $e) { echo $sql . "PDO query failed: <br>" . $e->getMessage(); }}pdoquery($sql,$info);
1 回答

慕慕森
TA貢獻1856條經驗 獲得超17個贊
嘗試以下
$info = array();
$info['fname'] = $_POST['fname'];
$info['lname'] = $_POST['lname'];
$info['email'] = $_POST['email'];
$info['password'] = password_hash($_POST['password'], PASSWORD_DEFAULT);
$info['datecreated'] = date("Y-m-d H:i:s");
$sql = "INSERT INTO Users (fname, lname, email, password, datecreated)
VALUES (:fname, :lname, :email, :password, :datecreated)";
function pdoquery ($sql, $info, $conn){
$stmt=$conn->prepare($sql);
$stmt->execute($info);
return $stmt;
}
pdoquery($sql,$info, $conn);
簡而言之,您忘記傳遞$conn給您的函數。
- 1 回答
- 0 關注
- 129 瀏覽
添加回答
舉報
0/150
提交
取消