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 关注
- 130 浏览
添加回答
举报