Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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 与MySQL服务器版本相对应的手册,以便使用正确的语法_Php_Mysql - Fatal编程技术网

Php 与MySQL服务器版本相对应的手册,以便使用正确的语法

Php 与MySQL服务器版本相对应的手册,以便使用正确的语法,php,mysql,Php,Mysql,我试图在数据库中插入一条记录,但它给了我一个错误 我正在使用PHP和MySQL 我需要一个成功的结果,但我得到了一个错误,下面是我的代码: $Pname = $_POST[Pname]; $P_Price = $_POST[P_Price]; $P_Desc = $_POST[P_Desc]; $P_City = $_POST[P_City]; $P_Size = $_POST[P_Size]; $P_Rooms = $_POST[P_Rooms];

我试图在数据库中插入一条记录,但它给了我一个错误

我正在使用PHP和MySQL

我需要一个成功的结果,但我得到了一个错误,下面是我的代码:

 $Pname = $_POST[Pname];
    $P_Price = $_POST[P_Price];
    $P_Desc = $_POST[P_Desc];
    $P_City = $_POST[P_City];
    $P_Size = $_POST[P_Size];
    $P_Rooms = $_POST[P_Rooms];
    $P_garage = $_POST[P_garage];
    $P_Address = $_POST[P_Address];
    $P_Long = $_POST[P_Long];
    $P_Lat = $_POST[P_Lat];
    $Provinces_idProvinces = $_POST[Provinces_idProvinces];

    // array for JSON response
    $response = array();

        $result = mysql_query("INSERT INTO property(Pname,P_Price,P_Desc,P_City,P_Size,P_Rooms,P_garage,P_Address,P_Long,P_Lat,Provinces_idProvinces)
        VALUES ('".$Pname."',".$P_Price.",'".$P_Desc."','".$P_City."','".$P_Size."','".$P_Rooms."',".$P_garage.",'".$P_Address."',".$P_Long.",".$P_Lat.",".$Provinces_idProvinces."'");

     if ($result) {
            // successfully inserted into database
            $response["success"] = 1;
            $response["message"] = $result ;

            // echoing JSON response
            echo json_encode($response);
        } else {
            // failed to insert row
            $response["success"] = 0;
            $response["message"] = mysql_error();
这是我的错误:

{"success":0,"message":"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''','','','',,'',,,'' at line 2"}
我检查了所有的东西,但还是有同样的错误。请帮忙,快3天了

以下是MySQL查询:

delimiter $$

CREATE TABLE `property` (
  `idProperty` int(11) NOT NULL AUTO_INCREMENT,
  `Pname` varchar(45) DEFAULT NULL,
  `P_Price` double DEFAULT NULL,
  `P_Desc` varchar(45) DEFAULT NULL,
  `P_City` varchar(45) DEFAULT NULL,
  `P_Size` varchar(45) DEFAULT NULL,
  `P_Rooms` varchar(45) DEFAULT NULL,
  `P_garage` int(11) DEFAULT NULL,
  `P_Address` varchar(45) DEFAULT NULL,
  `P_Long` int(11) DEFAULT NULL,
  `P_Lat` int(11) DEFAULT NULL,
  `P_Sold` tinyint(1) DEFAULT '0',
  `Provinces_idProvinces` int(11) NOT NULL,
  PRIMARY KEY (`idProperty`),
  KEY `fk_Property_Provinces` (`Provinces_idProvinces`),
  CONSTRAINT `fk_Property_Provinces` FOREIGN KEY (`Provinces_idProvinces`) REFERENCES `provinces` (`idProvinces`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1$$

您的查询存在许多问题:

  • 您没有清理用户输入的值(
    $\u GET
    $\u POST
    )-为此至少使用
    mysql\u real\u escape\u string
  • 您的查询包含一些空值,因此您的查询中有
    ,,
    。。。提交后验证表单,并检查每个属性是否以其他方式设置了值将其设置为
    '
    (空字符串)或
    0
    (零)或
    null
  • 你不用思考就用撇号和引号。。。这是Yoyr查询(不是将代码格式化为abble to do bold)-粗体是错误的撇号: 插入物业(P名称、P_价格、P_描述、P_城市、P_大小、P_房间、P_车库、P_地址、P_长、P_Lat、省/省)值(“$P名称”。”、“$P_价格”。“$P_描述”。”、“$P_城市”。”、“$P_大小。”、“$P_房间”。、“$P_车库”。、“$P_地址”。”、“$P_长、$P_省/省”。 在修复了这三个错误之后,你应该是好的

    几项建议:

  • 始终清理每个用户输入!(这可能是一个不得推荐的建议)
  • 您应该验证表单并为空字段设置默认值
  • 不要使用现在不推荐的
    mysql\u*
    函数,至少要使用
    mysqli\u*
    或PDO
  • 此外,您正在使用无引号的数组索引:

    $P_Price = $_POST[P_Price];
    
    除非
    p_Price
    是一个常数,否则您需要对其进行报价:

    $P_Price = $_POST['P_Price'];
    
    激活错误报告以查看您造成的所有错误,然后修复它们:

    error_reporting(E_ALL);
    ini_set('display_errors', true);
    

    您的查询存在许多问题:

  • 您没有清理用户输入的值(
    $\u GET
    $\u POST
    )-为此至少使用
    mysql\u real\u escape\u string
  • 您的查询包含一些空值,因此您的查询中有
    ,,
    …在提交后验证表单,并检查每个属性是否以其他方式设置了值,将其设置为
    '
    (空字符串)或
    0
    (零)或
    null
  • 您不用思考就使用撇号和引号…这是Yoyr查询(不是代码格式为abble to do bold)-粗体是错误的撇号: 插入物业(P名称、P_价格、P_描述、P_城市、P_大小、P_房间、P_车库、P_地址、P_长、P_Lat、省/省)值(“$P名称”。”、“$P_价格”。“$P_描述”。”、“$P_城市”。”、“$P_大小。”、“$P_房间”。、“$P_车库”。、“$P_地址”。”、“$P_长、$P_省/省”。 在修复了这三个错误之后,你应该是好的

    几项建议:

  • 始终清理每个用户输入!(这很可能是一项绝对不可接受的建议)
  • 您应该验证表单并为空字段设置默认值
  • 不要使用现在不推荐的
    mysql\u*
    函数,至少要使用
    mysqli\u*
    或PDO
  • 此外,您正在使用无引号的数组索引:

    $P_Price = $_POST[P_Price];
    
    除非
    p_Price
    是一个常数,否则您需要对其进行报价:

    $P_Price = $_POST['P_Price'];
    
    激活错误报告以查看您造成的所有错误,然后修复它们:

    error_reporting(E_ALL);
    ini_set('display_errors', true);
    

    “我检查了所有内容”您是否检查了查询的实际外观?SQL注入、引号和撇号的错误操作、没有检查调用后查询的外观(您是否尝试对查询进行
    echo
    )“我检查了所有内容”您是否检查了查询的实际外观?SQL注入、使用引号和撇号的错误操作、没有检查调用后查询的外观(您是否在查询上尝试了
    echo