【问题标题】:SQL Query always failsSQL 查询总是失败
【发布时间】:2013-07-02 11:11:49
【问题描述】:

我在使用 php 脚本时遇到了一些问题。

if(!empty($_POST['iblogtitle']))
{
    $ptitle = mysqli_real_escape_string($link, $_POST['iblogtitle']);
    $pcontent = mysqli_real_escape_string($link, $_POST['iblogcontent']);
    $pblogid = mysqli_real_escape_string($link, $_POST['iblogid']);
    $query = "UPDATE blog SET PostTitle='" . $ptitle . "', PostContent='" . $pcontent . "', PostDate=NOW() WHERE PostID='" . $pblogid . "'";
    $sql = mysqli_query($link, $query);

    if($sql)
    {
        header("LOCATION: blog.php");
    }
    else
    {
        $result = "Blog update failed: " . mysqli_error($link) . " / " . $query;
        echo $result;
    }
}

我遇到的问题是,当输入这个if 语句时,显然$_POST['iblogtitle'] 必须有一个值。但是,我已经检查并重新检查,甚至将 $query 更改为不包含 mysqli_real_escape_string 值,并且每次更新失败。

收到错误:

Blog update failed: / UPDATE blog SET PostTitle='', PostContent='', PostDate=NOW() WHERE PostID=''

没有实际的 MySQL 错误。我确保 error_reporting 已关闭,甚至将其设置为变量声明上方的 error_reporting(1)

【问题讨论】:

  • 你能回复$query吗?
  • @silkfire 他已经在这样做了
  • "I have made sure error_reporting is turned off " 那是你做错了。 error_reporting(E_ALL); 它必须是
  • 您确认$link有效吗?
  • 哪种类型的字段是“PostDate”

标签: php post mysqli sql-update


【解决方案1】:

请把脚本全部贴出来让我看看。

有时 $link 可能无效,因为您忘记包含连接听起来很愚蠢是事实。

【讨论】:

  • 我实际上刚刚包含了我的“base.php”,其中包含我的连接详细信息,一切正常。我现在唯一的疑问是我不明白为什么这不起作用。我给你们看的脚本是这样工作的:blog.php > if $_GET['blogid']=x > include "blogedit.php"blog.php 已经包含了 base.php 那么为什么不把它拉过来呢?
  • 可能是因为参数的原因,因为在包含中包含或朝着那个方向包含它有点奇怪。所以如果我正确,现在一切正常吗?
  • 想通了!我包含了 header.php,它在 if 语句中包含了 base.php,位于包含上述脚本的语句下方。因此,标题从未被调用过,也没有被调用过。 $link 不存在!
  • 一切都很好,感谢 Tredged 和其他提供帮助的人!
  • 是的,它的常见问题就是为什么我说 include in a include in a include 不好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 2012-05-20
  • 2019-06-18
  • 1970-01-01
  • 2018-12-16
  • 2017-09-23
  • 1970-01-01
相关资源
最近更新 更多