【问题标题】:Issue with saving data using mysql_query in php在 php 中使用 mysql_query 保存数据的问题
【发布时间】:2015-04-12 06:12:11
【问题描述】:

我正在使用这个 php 代码来保存订单详情。

public function saveShippingDetails($factoryid,$date,$noOfPlaces,$jsonStr){

        $result = mysql_query("insert into shipping_details(FKFactoryID,shippingDate,NoOfPlaces) values('$factoryid','$date','$noOfPlaces')");

        //check for successful store
        if($result){
            //get shipping details
            $detailsID = mysql_insert_id();//last inserted id
            $result1 = mysql_query("select * from shipping_details where shippingDetailsID=$detailsID");

            $count=0;

            $arrjson = json_decode($jsonStr,true); //gets the parent json object
            $length = sizeof($arrjson['places']);
            for($i=0; $i<$length; $i++){
                $city = $arrjson['places'][$i]['city'];
                $longitude = $arrjson['places'][$i]['longitude'];
                $latitude = $arrjson['places'][$i]['latitude'];
                $result2 = mysql_query("insert into delivery_places(FKShippingDetailsID,city,longitude,latitude) values('$detailsID','$city','$longitude','$latitude')"); //line 1
                if($result2){
                    ++$count;
                }
            }
            if($count==$length){
                return mysql_fetch_array($result1);
            }else{
                return false;
            }               
        }else{
            return false;
        }
    }

但是 line1(commented) 的插入部分还没有保存在数据库中。虽然我得到了$detailsID的返回值,这意味着($count==$length)的条件也为真。我检查了delivery_places表,但数据还没有保存。问题是什么?

我将脚本托管在 000webhost

谢谢。

【问题讨论】:

  • 在此行/查询之后返回mysql_error() 是什么?什么返回 echo insert into ...
  • 我没有收到任何错误。我得到返回值。我还检查了 sql 语句,它也插入了值。所以查询也ok。
  • 当你把带值的查询直接放到PMA、Adminer等时,数据会存入数据库吗?
  • 是的,查询正确

标签: php mysql sql-insert


【解决方案1】:

我建议您尝试使用mysql_commit() 函数。数据可能已插入但未提交到数据库。

无论是那个还是在开始插入之前,把这个条件:

mysqli_autocommit($con,TRUE);

如果没有错误,我只能认为数据没有被提交。

我不熟悉 PHP 连接 mysql 的语法,但你不应该在 mysql_query() 函数中提及连接变量吗?

【讨论】:

  • 数组大小的值是 0。不知道原因??
  • 嘿! $result1 = mysql_query("select * from shipping_details where shippingDetailsID=$detailsID");在这一行中,您需要像其他 php 变量一样将 $detailsID 括在 ' ' 中。所以试试你的函数: $result1 = mysql_query("select * from shipping_details where shippingDetailsID='$detailsID'");
猜你喜欢
  • 2015-09-22
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 2011-08-01
相关资源
最近更新 更多