Php 如何将数据插入最后一个受影响的行
我是否可以将数据插入最后一个受影响的行, 首先,我使用data.php在“198”行插入数据,然后 第二个用户使用image.php更新第198行的url_路径,但将其添加为下一行 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'];
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';