2012-02-24 4 views
-3

По какой-то причине этот запрос активирует штамп PHP, который я установил для него. Я просто не понимаю, потому что он отлично работает только в SQL, и все переменные PHP верны. Имя - varchar (12), Message is Text, InRoom - SmallInt, Time is DateTime, а IP - текст.Проблемы с запросом PHP/SQL

<?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

Укажите, пожалуйста, свое название. Существует _reason_, что вы не можете писать «проблемы» там, и это происходит не потому, что нам нравится читать творческие синонимы людей. –

+0

показать, что находится в вашем $ db, это соединение obj? –

+0

Он умирает до Невозможно создать сообщение, и я не могу сказать вам, в чем проблема. Если бы я знал это, я мог бы исправить это сам – CyanPrime

ответ

3

Time это имя функции в MySQL, и в таком запросе есть двусмысленность.

имена разграничить поля в обратных кавычках:

INSERT INTO `fate_chat_messages` 
    (`Name`, `Message`, `InRoom`, `Time`, `IP`) 
VALUES (
    "a", "b", "c", CURRENT_TIMESTAMP(), "d"); 

И добавить код в вашу программу на дисплей сообщения об ошибке, MySQL дает вам.

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) ."' 
)"; 
0

Извините об этом. Используя mysql_error(), что Джеймс рассказал мне, как использовать, я понял, что у меня установлено, что поле IP уникально. Удаление, исправленное программой. Спасибо за вашу помощь.

Смежные вопросы