簡體   English   中英

PHP Mysql:選擇列,並用新值添加最后一個當前值

[英]PHP Mysql: Select column and add last current value with a new one

我試圖用新值從mysql中的特定列中添加最后一個值。

$ result不給我任何回報。

例如:last value = 100,value5 = 50,新值應為150。

        // Read values into table.
        $sql = "SELECT specific_column FROM data WHERE id=LAST_INSERT_ID()";
        $result = mysqli_query($conn, $sql);

        // Insert values into table.
        $sql = "INSERT INTO data (column1, column2, column3, column4, specific_colum)
        VALUES ($value1, $value2, $value3, $value4, $result+$value5 )";

$resultmysqli對象。您不能直接獲取列值。您需要先像這樣獲取行值。

$row = mysqli_fetch_assoc($result);
$last_value = $row['specific_column'];
$update_value = $last_value+$value5;//now update $update_value in database

mysqli_fetch_assoc()函數獲取結果行作為關聯數組。

您正在使用MysQLi嗎?

您是否嘗試過:

$sql = "INSERT INTO ....";

if ($conn->query($sql) === TRUE) {
    $last_id = $conn->insert_id;
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

要么:

if (mysqli_query($conn, $sql)) {
    $last_id = mysqli_insert_id($conn);
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

然后根據需要使用$ last_id

LAST_INSERT_ID()不會返回您在row中插入的任何值,而只會返回以0、1,2等形式插入或更新的ROW ID,或者返回前一個INSERT或UPDATE語句為AUTO_INCREMENT列生成的值。

用途:-

對包含AUTO_INCREMENT字段的表執行INSERT語句,或者使用INSERT或UPDATE設置帶有LAST_INSERT_ID(expr)的列值后,請使用此功能。

更多參考

在這里,LAST_INSERT_ID將不返回任何內容

由於LAST_INSERT_ID()返回一個BIGINT UNSIGNED(64位)值,該值表示由於最近執行的INSERT語句而成功為AUTO_INCREMENT列成功插入的第一個自動生成的值。 如果沒有成功插入任何行,則LAST_INSERT_ID()的值將保持不變。

因此,您可以使用MAX代替LAST_INSERT_ID

$sql = "SELECT specific_column FROM data WHERE id= (select MAX(id) from data)";
$result = mysqli_query($conn, $sql);

如果您只需要使用N個數字來更新specific_column值,請嘗試執行此操作

UPDATE data SET
    specific_column  = @specific_column  := specific_column + $value5
WHERE ..... ;

因此$value5 =50specific_column將為100 + 50

$sql = "SELECT specific_column FROM data WHERE id= (select MAX(id) from data)";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$sql = "INSERT INTO data (column1, column2, column3, column4, specific_colum)
        VALUES ($value1, $value2, $value3, $value4, $row['specific_colum']+$value5 )";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM