MySQL语法错误错误

时间:2013-08-10 00:37:08

标签: php

调用我的函数时会出现MySQL语法错误,有什么想法吗?

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

function getComments1() {
    $query = mysql_query("SELECT * FROM comments") or die(mysql_error());
    while($post = mysql_fetch_assoc($query)) {
        echo $post['Author'];

    }
}

function addComment($cName, $cContent) {
    $query = mysql_query("INSERT INTO comments VALUES(null,'$cName','$cContent'") or die(mysql_error());
}

<?php
include('includes/functions.php');
mysql_set_charset ( "utf8" );

if(isset($_POST['submit'])) {
    if(isset($_POST['CommentName'])) {
        if(isset($_POST['CommentContent'])) {
            addComment($_POST['CommentName'],$_POST['CommentContent']);
            header("Location: derger.php");
        } else { "text missing";

        }

    } else {
        echo "name missing";
        include('herger.php'); 
    }

} else {
    header("Location: werger.php");
}
?>

2 个答案:

答案 0 :(得分:3)

("INSERT INTO comments VALUES(null,'$cName','$cContent'") 

您没有关闭这些值。应该是:

("INSERT INTO comments VALUES(null,'$cName','$cContent')") 

此外,正如大家在此提醒您的那样,不推荐使用mysql_函数。你应该使用PDO或MySQLi。对它们进行简单的谷歌搜索将为您提供足够的资源来过渡。

答案 1 :(得分:2)

错误是您缺少插入查询中的右括号。更新查询,如下所示:

$query = mysql_query("INSERT INTO comments VALUES(null,'$cName','$cContent')") or die(mysql_error());

请注意'$cContent'后的右括号。

其他值得注意的问题是,您仍在使用已弃用的mysql_个扩展程序,您应该开始使用mysqlipdo。还请注意,您当前的实现容易受到SQL注入攻击,您至少应该实现mysql_real_escape_string。请查看https://www.owasp.org/index.php/SQL_Injection