php - PHP 不执行 MySqli 查询
问题描述
这段代码的大部分工作都很好,当我单击按钮时数据库会更新,但最后一个查询(更新)由于某种原因没有执行。我尝试在 phpmyadmin 上打开 mysql 日志,但即使在那里也没有执行。它没有向我显示任何错误,我真的不知道可能出了什么问题。
$query = "SELECT username, coins FROM users WHERE userid='$userid' LIMIT 1";
$result = mysqli_query($db, $query);
$user = mysqli_fetch_assoc($result);
$_SESSION['username'] = $user['username'];
$_SESSION['coins'] = $user['coins'];
$op = $user['username'];
$op = mysqli_real_escape_string($forumdb, $op);
$postcontent = $_POST['postcontent'];
$postcontent = mysqli_real_escape_string($forumdb, $postcontent);
$posttitle = $_POST['posttitle'];
$posttitle = mysqli_real_escape_string($forumdb, $posttitle);
$sectionid = $_GET['sectionid'];
$sectionid = mysqli_real_escape_string($forumdb, $sectionid);
$query = "INSERT INTO topic (section_id, name, replies, op, lastpost, lastuserid, views, sticked) values('$sectionid', '$posttitle', '0','$op', CURRENT_TIMESTAMP(),'$userid', '0', '0')";
$result = mysqli_query($forumdb, $query) or trigger_error("Query Failed! SQL: $query - Error: ".mysqli_error($forumdb), E_USER_ERROR);
$last_id = mysqli_insert_id($forumdb);
$query = "INSERT INTO posts (topic_id, content, user_id) values('$last_id', '$postcontent', '$userid')";
mysqli_query($forumdb, $query);
$query = "UPDATE section SET lastpost='$username', threads=threads+1, posts=posts+1 WHERE id='$sectionid'";
mysqli_query($forumdb, $query) or trigger_error("Query Failed! SQL: $query - Error: ".mysqli_error($forumdb), E_USER_ERROR);
解决方案
如果您解释了“由于某种原因不执行”的含义,那将会很有帮助。
要么你得到一个错误,表明 SQL 在运行时无效,要么继续执行并且没有更改任何数据。
在不知道错误是什么的情况下,我们无法告知会导致错误的原因。如果继续执行,但记录没有(显然)更新,那么一定是因为更新语句的 WHERE 子句没有匹配任何行。您可以通过检查mysqli_affected_rows()来验证这一点。
您之前运行的查询将在 mysql 常规日志中。您可能希望将 SQL 语句回显到输出并检查它是否按预期填充
推荐阅读
- xamarin - 如何在 App Center Build 中使用 .NET Core 3.0 Preview8
- c++ - C++ 触发一次事件
- python - 手动设置地理视图的纬度、经度范围
- php - 我的文件上传表单是否可以在 PWA 中使用,如果没有,我该如何实现?
- c - 在 C 中合并两个链表时遇到问题
- visual-studio - Qt - 在 QTableWidget 中添加一行时出现奇怪的访问冲突
- python - 如何使用 python 脚本的输出作为 RASA 的输入而不是通常的用户输入?
- php - 仅向多个授权用户角色显示 WooCommerce 产品
- javascript - Bootstrap Modal appearing empty when reopened for a 2nd time
- javascript - React-konva 带箭头的双连接对象