php - 添加另一个表时如何更改表中列的值?

标签 php mysql sql

添加另一个表时如何更改表中列的行值? 你如何寻求帮助? 我的数据库中有两个表 第一个表称为 Drug 它由三列组成: 示例表一

// TABLE Drug 
DROP TABLE IF EXISTS `Drug`;
CREATE TABLE IF NOT EXISTS `Drug` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`brId` text NOT NULL,
`nameDrug` text NOT NULL,
 PRIMARY KEY (`id`)
 )

第二个表名为品牌 示例表二

       // TABLE brand
   DROP TABLE IF EXISTS `brand`;
   CREATE TABLE IF NOT EXISTS `brand` (
   `idBrand` int(11) NOT NULL AUTO_INCREMENT,
   `brandName` text NOT NULL,
  `theUse` text NOT NULL,
   PRIMARY KEY (`idBrand`)
   )

我需要的是,当您在品牌表中添加一行时,药品表中的 brId 会根据发送的药品表中的 id 更新为新的 idBrand 我已经完成了以下代码,因为它不起作用

   <?php
    require_once('include/config.php');

    $id = $_POST['id'];

   $brandName = $_POST['brandName'];

   $theUse = $_POST['theUse'];

    $query = "INSERT INTO brand 
    (brandName,theUse)VALUES('".$brandName."','".$theUse."');";

     $insertBrand = mysqli_query($con,$query);           
                  if($insertBrand)
                    {
                $updatDrug = "UPDATE  `drug` SET  `brId` = new.idBrand WHERE `id` = '".$id."' ;";
                $resultEnd = mysqli_query($con,$updatDrug);
    if($resultEnd){
     $result = 'OK';
     echo json_encode($result);
     }else{
     $resultno = 'NO';
    echo json_encode($resultno);
       }
    }                                                   

mysqli_close($con);
?>

最佳答案

INSERT之后,使用mysqli_insert_id作为 brId 的值。

$br = mysqli_insert_id($con);
$updatDrug = "UPDATE drug SET brId = :brid WHERE id = :id";
$stmt = $con->prepare($updatDrug);
$stmt->bind_param('ii', $br, $id);
$stmt->execute();
$stmt->close();

请避免 SQL INJECTION

关于php - 添加另一个表时如何更改表中列的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53530545/

相关文章:

java - 为什么字符串打印不正确?

mysql - 在一次查询中获取忽略某一状态的供应商的取消率

php - 基于 PHP 或 Django 的可扩展且灵活的电子商务网站框架

php - 提示在我的网页上下载文件

mysql - 唯一键和索引 - 我应该同时使用两者吗

sql - SQL 中派生表的性能问题

php - 在每组的 2 行之间选择

PHP 唯一文本字段?

php - 速记数组在服务器上不起作用

php - 在 WAMP 中提交大文本后连接重置