-1

调用我的函数时出现 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");
}
?>
4

2 回答 2

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

您没有关闭值。应该:

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

另外,这里的每个人都会提醒你,mysql_ 函数已被弃用。您应该使用 PDO 或 MySQLi。一个简单的谷歌搜索将给你大量的资源过渡到。

于 2013-08-10T00:40:08.830 回答
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

于 2013-08-10T00:40:12.690 回答