由于某种原因,这个查询会激活我为它设置的PHP模具。我只是没有得到它,因为它只在SQL中工作正常,并且所有PHP变量都是正确的。名称为varchar(12),Message为Text,InRoom为SmallInt,Time为DateTime,IP为文本。
<?php
require 'functions.php';
$room = sanitize($_POST['room']);
$name = sanitize($_POST['name']);
$message = sanitize($_POST['message']);
$ip = $_SERVER['REMOTE_ADDR'];
//print_r($_POST);
$query ='INSERT INTO fate_chat_messages(Name, Message, InRoom, Time, IP) VALUES("'.$name.'", "'.$message.'", '.$room.', CURRENT_TIMESTAMP, "'.$ip.'")';
$sql_result = mysql_query($query, $db) or die("Can't create post");
?>
答案 0 :(得分:3)
Time
是MySQL中函数的名称,因此您的查询含糊不清。
在反引号中分隔字段名称:
INSERT INTO `fate_chat_messages`
(`Name`, `Message`, `InRoom`, `Time`, `IP`)
VALUES (
"a", "b", "c", CURRENT_TIMESTAMP(), "d");
并在程序中添加代码,以显示MySQL为您提供的错误消息。
答案 1 :(得分:0)
你是单引号,双引号似乎搞砸了。你应该转义你的变量,但你的查询字符串看起来应该更像这样:
"INSERT INTO fate_chat_messages(
`Name`,
`Message`,
`InRoom`,
`Time`,
`IP`
) VALUES('"
.mysql_real_escape_string($name) ."', '"
.mysql_real_escape_string($message) ."', "
.mysql_real_escape_string($room) ."',
CURRENT_TIMESTAMP(), '"
.mysql_real_escape_string($ip) ."'
)";
答案 2 :(得分:0)
对不起这个家伙。使用James告诉我如何使用的mysql_error()我发现我的IP字段设置为唯一。删除修复程序。谢谢大家的帮助。