使用php中的mysql_query保存数据的问题

时间:2015-04-12 06:12:11

标签: php mysql sql-insert

我正在使用此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;
        }
    }

但是第1行(已注释)的插入部分尚未保存在数据库中。虽然我使用$detailsID获得了返回值,这意味着($count==$length)的条件也变为真。我检查了delivery_places表,但数据尚未保存。有什么问题?

我在000webhost

中托管了这些脚本

感谢。

1 个答案:

答案 0 :(得分:0)

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

在开始插入之前或之前,请设置以下条件:

mysqli_autocommit($con,TRUE);

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

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