2 回答

TA貢獻2021條經驗 獲得超8個贊
代碼中的主要錯誤是'?'查詢中的拼寫錯誤。如果?是在引號內,則不會將其視為占位符,而是將其視為文字值。
使用 MySQLi 時,您應該啟用 MySQLi 異常模式。如果這樣做,則不再需要檢查每個函數的結果。您還應該使用 OOP 風格,因為它不那么冗長,而且不太可能犯下愚蠢的錯誤。
// put this line before you open the MySQLi connection
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$stmt = $linkDB->prepare('SELECT * FROM '.PREFIX.'Issues WHERE id=? AND disabled=0 LIMIT 1');
$stmt->bind_param('i', $_POST['article']);
$stmt->execute();
$detail = $stmt->get_result()->fetch_assoc();

TA貢獻1836條經驗 獲得超3個贊
如果您不是經驗豐富的編碼員,我會推薦 PDO。它是面向對象的,適合現代的 PHP 編碼方式。
在您的配置文件中,您輸入:
$db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
還有你的腳本:
$statement = $pdo->prepare('SELECT * FROM '.PREFIX.'Issues WHERE id = :id AND disabled = 0 LIMIT 1';
$statement->execute(['id' => $_POST['article']);
$result = $statement->fetch(PDO::FETCH_ASSOC);
- 2 回答
- 0 關注
- 185 瀏覽
添加回答
舉報