【发布时间】:2019-02-07 10:40:42
【问题描述】:
大部分代码都可以正常工作,当我单击按钮时数据库会更新,但最后一个查询(更新)由于某种原因没有执行。 我尝试在 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);
【问题讨论】:
-
您总是更新 id=1 的同一节记录?
-
不,只是我很沮丧,以至于我尝试手动插入值以了解这是不是拼写错误或什么。不过我更新了它
-
以前从未见过:threads=threads+1,posts=posts+1,如果你需要增加列的值,在这种情况下你必须使用 php。您可以尝试回显您的查询,并尝试在 db 中执行它并查看错误结果。
-
tech-recipes.com/rx/2139/mysql_increment_an_exisitng_value 我不是 100% 确定这一点,但我想我以前用过它,它有效 编辑:我尝试执行它,将 $username 更改为随机名称,它确实有效
-
将
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);添加到脚本顶部。这将强制任何 mysqli_ 错误生成您可以在浏览器上看到的异常以及正常的 PHP 错误。
标签: php mysql database session mysqli