PHP、MYSQL选择行更新

标签 php mysql mysqli

我想更改所选图像的 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/

相关文章:

mysql - hibernate JPA : Can not set field x to x

c# - session 管理 c#.net 和 mysql

php - 我在插入数据库时​​使用 mysqli 准备好的语句抛出错误

php - MySQL 选择常量位于表数组中的位置

php - 图像在 Bootstrap 行中被拉伸(stretch)

java - JPA - 语法错误解析 SELECT GREATEST(c.field, mc.field), LEAST(c.field, mc.field) FROM table

php - 正在合并单独的电子邮件

php - 连接尝试时出现奇怪的主机

php - 我需要用 php/javascript 循环一段 HTML 代码,有建议吗?

php - 如何在 PHP 命令 (CLI) 中传递 bash 脚本变量值