调用我的函数时会出现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");
}
?>
答案 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_
个扩展程序,您应该开始使用mysqli或pdo。还请注意,您当前的实现容易受到SQL注入攻击,您至少应该实现mysql_real_escape_string。请查看https://www.owasp.org/index.php/SQL_Injection