我正在對資料庫進行更新,但它無法使用系結引數作業,但如果我在 sql 檔案中進行更新并替換 ? 到它作業的實際值。
$sqlUpdate3 = $connection->prepare("UPDATE Users SET DateOfBirth = DATE(STR_TO_DATE(' ?, ?, ? ', '%d, %m, %Y')) WHERE UserName=?");
$sqlUpdate3->bind_param("ssss", $_POST["daySelect"], $_POST["monthSelect"], $_POST["yearSelect"], $_SESSION["username"]);
$sqlUpdate3->execute();
uj5u.com熱心網友回復:
SQL 中字串文字中的問號不是引數占位符,它們只是文字問號字符。
要使它們成為引數,您必須將問號放在字串分隔符之外:
$sqlUpdate3 = $connection->prepare("
UPDATE Users SET DateOfBirth =
DATE(STR_TO_DATE(CONCAT(?, ', ', ?, ', ', ?), '%d, %m, %Y'))
WHERE UserName=?");
$sqlUpdate3->bind_param("ssss", $_POST["daySelect"],
$_POST["monthSelect"], $_POST["yearSelect"], $_SESSION["username"]);
但是,我建議在 PHP 中將日期格式化為與 MySQL 兼容的 YYYY-MM-DD 格式,然后將其系結為單個引數。
$date = new DateTime();
$date->setDate($_POST["year"], $_POST["month"], $_POST["day"]);
$dateString = $date->format('Y-m-d');
$sqlUpdate3 = $connection->prepare("
UPDATE Users SET DateOfBirth = ?
WHERE UserName=?");
$sqlUpdate3->bind_param("ss", $dateString, $_SESSION["username"]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/486257.html
