【问题标题】:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server etc您的 SQL 语法有错误;检查与您的 MySQL 服务器等对应的手册
【发布时间】:2014-03-01 09:58:51
【问题描述】:

当我尝试更新我的 mysql 数据库中的内容时,出现以下错误。

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 1 行的 '' 附近使用

<?php
    include("../inc/con.php");

    $postID = $_POST['postID'];

    $title = $_POST['title'];
    $content = $_POST['content'];

    $edit = mysql_query("UPDATE posts SET postTitle = '$title', postContent = '$content' WHERE postID = $postID") or die(mysql_error());

?>

【问题讨论】:

  • 你不应该首先使用mysql_query,它不安全并且已被弃用。请改用mysqli 或 PDO。
  • 你的内容或标题中是否有双引号?
  • 你能echo你试图执行的sql字符串,以便我们看看变量是如何被替换的吗?
  • 每次将$vars 添加到mysql_query 时,不要忘记mysql_real_escape_string 他们,尽管您也应该考虑@Stefano 所说的内容。

标签: php mysql sql


【解决方案1】:

你应该先转义你的变量。

试试这个

$postID = mysql_real_escape_string($_POST['postID']);

$title = mysql_real_escape_string($_POST['title']);
$content = mysql_real_escape_string($_POST['content']);
$edit = mysql_query("UPDATE posts SET postTitle = '".$title."',
                                    postContent = '".$content."'
                     WHERE postID = '".$postID."' ") or die(mysql_error());

【讨论】:

  • 它并没有更多的错误,但它仍然没有更新它,在数据库中。 ://
  • 那么你的主要问题就解决了伙计,你在标题中的主要问题是这个错误。
  • 要解决第二个问题,您必须提供代码和表格,我们会看到。
  • 这是我在数据库中的表:prntscr.com/2wu7x8 这是我编辑帖子的代码。 pastebin.com/23T8bmLi
  • 那么您必须首先确保这些变量中有值。尝试回显它们并查看是否有值,可能 $postID 为空或其他人。
猜你喜欢
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 2014-03-14
  • 1970-01-01
相关资源
最近更新 更多