[英]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 )";
$result
是mysqli
對象。您不能直接獲取列值。您需要先像這樣獲取行值。
$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 =50
則specific_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.