将自动增量ID插入同一个表中的另一列,并在单独查询前添加一个字符而不更新它

时间:2017-02-01 02:48:56

标签: php mysql

您好我需要插入自动递增的' invoice_id'到第二栏' invoice_code'并加上字符' z'它。有没有办法在没有单独查询的情况下更新呢?

这是我希望在我的专栏中看到的内容:

---------------------------------------------
| invoice_id | invoice_code | invoice_value |
---------------------------------------------
|           1|            z1| sample value1 |
|           2|            z2| sample value2 |
|           3|            z3| sample value3 |
---------------------------------------------

到目前为止我的查询:

$query = "INSERT INTO invoices () VALUES(null,
                                        'z'.invoice_id,
                                        'sample value'.invoice_id
                                        )";

3 个答案:

答案 0 :(得分:0)

尝试类似的事情,

$count = 1;
while ($count <= 3) {
    $query .= "INSERT INTO invoices ("invoice_code", "invoice_value") VALUES('z'.$count, 'sample value'.$count);";
    $count++;
}

抱歉编辑,没想到。

答案 1 :(得分:0)

你可以使用mysqli的函数mysqli_insert_id($conn)

来做到这一点
$connection = new mysqli('localhost', 'root', 'root', 'database');
$query      = "INSERT INTO invoices (invoice_value) VALUES('sample')";

// Creates new record
mysqli_query($connection, $query); 

然后获取最后插入的ID

// Fetches newly inserted id
$id  = mysqli_insert_id($connection);

然后更新现有行

$update = "UPDATE invoices SET invoice_code='z".$id."' WHERE invoice_id = ". $id;

// Updates the existing record with autoincrement id 
mysqli_query($connection, $update); 

答案 2 :(得分:0)

您需要知道此表的下一个自动增量ID是什么。

我会这样做

$query = "SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'table_name' AND table_schema = DATABASE( )";