大多数代码工作正常,当我单击按钮时,数据库得到更新,但是由于某种原因,最后一个查询(UPDATE一个)未执行。 我尝试在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);
答案 0 :(得分:0)
如果您解释“由于某种原因而没有执行”的含义,将会很有帮助。
或者您收到一条错误消息,表明SQL在运行时无效,或者继续执行并且没有数据被更改。
在不知道错误是什么的情况下,我们无法建议可能导致错误的原因。如果继续执行,但是记录(显然)未更新,则一定是因为update语句的WHERE子句与任何行都不匹配。您可以通过选中mysqli_affected_rows()进行验证。
您先前运行的查询将在mysql常规日志中。你可能想要 将SQL语句回显到输出,并检查是否按预期填充了
答案 1 :(得分:0)
您可以使用以下方法解决您的问题:
"UPDATE `section` SET `lastpost`='$username', `threads`=threads+1, `posts`=posts+1 WHERE `id`='$sectioni