使用MAX(id)和状态值同时插入数据

时间:2016-06-23 03:34:43

标签: php html sql database mysqli

我正在尝试使用此代码,但它无效。始终将MAX(eq_no)设为0

    $sql1 =mysqli_query($con, "SELECT MAX(eq_no) AS val FROM tech_add_equip");

    $sql2 = "INSERT INTO time (eq_no,status_no) VALUES ('$val', 4 );";
            if (!mysqli_query($con,$sql2)) { 
            die('Error: ' . mysqli_error($con)); }; 

最后,在尝试使用此代码后,它会插入正确数量的MAX(eq_no),但我仍然无法插入status_no

的值
INSERT INTO time (eq_no) SELECT MAX(eq_no) AS vale FROM tech_add_equip

你能否告诉我代码中缺少什么?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

$max = SELECT MAX( customer_id ) FROM customers;
       INSERT INTO customers( customer_id, statusno )
       VALUES ($max , 4)

答案 1 :(得分:0)

在子查询中从SELECT a,b,c语句返回的一行等同于另一组硬编码为('a-value','b-value','c-value') *的值。您也可以在select中对值进行硬编码:

INSERT INTO time (eq_no, status_no)
    SELECT MAX(eq_no), 4
    FROM tech_add_equip

select中不需要别名 - 列的顺序很重要。

*)一行结果可用于IN()子句。另一行将在逗号后变为值集 - 不能用于IN(),但它适用于INSERT

('row1-a-value', 'row1-b-value'), ('row2-a-value', 'row2-b-value')