Php 如何将数据插入最后一个受影响的行

Php 如何将数据插入最后一个受影响的行,php,mysql,Php,Mysql,我是否可以将数据插入最后一个受影响的行, 首先,我使用data.php在“198”行插入数据,然后 第二个用户使用image.php更新第198行的url_路径,但将其添加为下一行 PHP代码- 有什么帮助吗 编辑代码 try{ if (!isset($_FILES['image']['tmp_name'])) { echo "Image not recognised"; }else{ $file=$_FILES['image']['tmp_name'];

我是否可以将数据插入最后一个受影响的行, 首先,我使用data.php在“198”行插入数据,然后 第二个用户使用image.php更新第198行的url_路径,但将其添加为下一行

PHP代码- 有什么帮助吗

编辑代码

    try{
    if (!isset($_FILES['image']['tmp_name'])) {
    echo "Image not recognised";
    }else{
    $file=$_FILES['image']['tmp_name'];
    $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name= addslashes($_FILES['image']['name']);
        //folder name 'images'
        move_uploaded_file($_FILES["image"]["tmp_name"],"images/" . $_FILES["image"]["name"]);

        $location="http://localhost/folder/images/" . $_FILES["image"]["name"];

    }
    $result = mysqli_query($con, "INSERT INTO products (pro_img_path) VALUES ('$location')");
    $lastid=mysqli_insert_id($con);
    $result = mysqli_query($con, "UPDATE products SET pro_img_path='$location' WHERE time='$lastid' LIMIT 1");

    $response["success"] = 1;
    $response["message"] = "Image Added Successful!";
    die(json_encode($response));
    }

  **Table Structure**
   -- phpMyAdmin SQL Dump
   -- version 4.1.6
   -- http://www.phpmyadmin.net
   --
   -- Host: 127.0.0.1
   -- Generation Time: Sep 15, 2014 at 08:40 PM
   -- Server version: 5.6.16
   -- PHP Version: 5.5.9

   SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
   SET time_zone = "+00:00";


   /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
   /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
   /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
   /*!40101 SET NAMES utf8 */;

   --
   -- Database: `db` 
   --

   -- --------------------------------------------------------

   --
   -- Table structure for table `products`
   --

   CREATE TABLE IF NOT EXISTS `products` (
   `pid` int(100) NOT NULL AUTO_INCREMENT,
   `category` varchar(20) COLLATE utf8_bin NOT NULL,
   `subcategory` varchar(20) COLLATE utf8_bin NOT NULL,
   `product_name` varchar(100) COLLATE utf8_bin NOT NULL,
   `product_descrip` varchar(255) COLLATE utf8_bin NOT NULL,
   `product_price` varchar(100) COLLATE utf8_bin NOT NULL,
   `more_info` varchar(255) COLLATE utf8_bin NOT NULL,
   `pro_img_path` varchar(255) COLLATE utf8_bin NOT NULL,
   `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
   PRIMARY KEY (`pid`)
   ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Product Details' AUTO_INCREMENT=185 ;

   --
   -- Dumping data for table `products`
   --

   INSERT INTO `products` (`pid`, `category`, `subcategory`, `product_name`, `product_descrip`,                                                  `product_price`, `more_info`, `pro_img_path`, `time`) VALUES
   (176, 'Electronics', 'Mobile Accessories', 'Samsung Charger', 'Model G-S5830', '0890',     'MegaWat 10', '', '2014-09-15 14:19:11'),
   (182, 'Category1', 'Subcategory1', 'Electronics', 'Camera', 'Sony', 'ZeroShot', '', '2014-09-   15   17:35:42');

    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

如果要在插入数据后更新数据,请执行以下操作:

后代码

$result = mysqli_query($con, "INSERT INTO products (pro_img_path) VALUES ('$location')");
找出插入id并将其分配给变量

然后运行类似于此的更新查询

UPDATE products SET column=value WHERE id='$lastid' LIMIT 1
请注意limit 1子句,如果您不熟悉php和mysql,这将非常有用,以防止出现大量错误。如果计划更新一行,则将查询限制为一行,以防弄乱WHERE子句

以下是完整的更新语法: 以下是mysqli文档:

您可以使用:mysqli\u insert\u id获取最后一个插入的id

 $last_inserted_id=mysqli_insert_id($con) ;
然后用您的值集进行更新

UPDATE products SET column1=value1,column2=value2 WHERE id='$last_inserted_id';

如果要更改现有行中的数据,则需要使用UPDATE而不是INSERT。是的,我知道,但在何处以及如何使用..我是php新手..我尝试了此操作,但仍然以与上次插入行不同的方式插入数据..也尝试了此操作,仅在上次更新行中插入未更新的数据,我如何获得$lastid?!?我不理解你的评论,要获得最后一个id,请使用我在插入查询后发布的代码$lastid=mysqli\u insert\u id$con;如果可能的话,我可以发布图片来解释清楚,但由于声誉价值较低,无法发布图片。我将发布编辑后的代码。如果我错了,请更正。将时间与id列进行比较没有意义,如this time='$lastid',您需要将上一个id与表的主键列进行比较。如果您有更多问题,请发布您的表结构。还有,为什么要在表中插入某些内容,然后将其设置为相同的数据?您不需要更新pro_img_path,因为这就是您刚刚插入的表结构,是的,我只想将数据插入到最后一个受影响的行中。列pro_img_路径
 $last_inserted_id=mysqli_insert_id($con) ;
UPDATE products SET column1=value1,column2=value2 WHERE id='$last_inserted_id';