Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/SQL查询难题_Php_Sql - Fatal编程技术网

PHP/SQL查询难题

PHP/SQL查询难题,php,sql,Php,Sql,出于某种原因,这个查询激活了PHP的die,我为它设置了die。我不明白,因为它在SQL中运行良好,而且所有PHP变量都是正确的。名称是varchar12,消息是文本,InRoom是SmallInt,Time是DateTime,IP是文本 <?php require 'functions.php'; $room = sanitize($_POST['room']); $name = sanitize($_POST['name']); $message =

出于某种原因,这个查询激活了PHP的die,我为它设置了die。我不明白,因为它在SQL中运行良好,而且所有PHP变量都是正确的。名称是varchar12,消息是文本,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");
?>
时间是MySQL中函数的名称,因此您的查询具有模糊性

用反勾号分隔字段名称:

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

并将代码添加到程序中,以显示MySQL给您的错误消息。

您的单引号和双引号似乎有问题。无论如何,您都应该转义变量,但您的查询字符串应该更像这样:

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

对不起,伙计们。使用James告诉我如何使用的mysql_错误,我发现我的IP字段设置为unique。删除该选项修复了该程序。谢谢大家的帮助。

请用标题描述问题。你不能在那里写问题是有原因的,这并不是因为我们喜欢阅读人们创造性的同义词。@CyanPrime:为什么不用MySQL\u error检索MySQL错误文本呢?不要介意修复它,你甚至还没有调试它。@Lightness在轨道上比赛,你不必这么粗鲁。我不知道mysql的错误。您能解释一下如何使用它吗?与其使用或DieContreat create post,不如尝试使用或DieContreat create post..mysql\u error查看您的错误。如果您能够从一开始就看到错误,您甚至可能不需要这个线程。@CyanPrime:我一点也不粗鲁。解释PHP MySQL API如何工作超出了此评论线程的范围。PHP手册是一个很好的参考资料,有很多例子。