我想更改所选图像的 ID 信息。我想让 ID 号比最后一个可用的 ID 号多。
在 HTML 中;
<form action="netting/operations.php" method="post">
<input type="hidden" value="<?php echo $unilogo['uni_logo_id'] ?>" name="uni_logo_id">
<button value="use" name="use_again">Use Again</button>
</form>
在 PHP 中;
<?php
if(isset($_POST['use_again'])){
$unilogoid= $_POST['uni_logo_id'];
$lastunilogoid = mysqli_query($conn,"SELECT uni_logo_id FROM uni_logo ORDER BY uni_logo_id DESC LIMIT 1");
$unilogosql = "UPDATE uni_logo SET uni_logo_id='".$lastunilogoid."' WHERE uni_logo_id='".$unilogoid."'";
$unilogosira=mysqli_query($conn,$unilogosql,MYSQLI_USE_RESULT);
?>
最佳答案
$lastunilogoid
不是有效的 ID,它是一个 mysqli_result
对象。您需要调用mysqli_fetch_assoc
:
$result = mysqli_query($conn,"SELECT uni_logo_id FROM uni_logo ORDER BY uni_logo_id DESC LIMIT 1");
$row = mysqli_fetch_assoc($result);
$lastunilogoid = $row['uni_logi_id'];
但是您可以在一个查询中完成所有操作,并且您应该使用准备好的语句来完成此操作。
$stmt = mysqli_prepare($conn, "
UPDATE uni_logo AS u1
JOIN (SELECT MAX(uni_logo_id) AS max_id
FROM uni_logo) AS u2
SET u1.uni_logo_id = u2.max_id + 1
WHERE u1.uni_logo_id = ?");
mysqli_stmt_bind_param($stmt, "i", $unilogoid);
mysqli_stmt_execute($stmt);
关于PHP、MYSQL选择行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43105722/