使用预准备语句更新并使用id绑定行

时间:2017-05-04 06:20:53

标签: php mysql mysqli

我的数据库包含以下列:id, openingHours, records

我有一个HTML表格,我从MySQL数据库中打印出行。在每个HTML行的右侧,我有一个按钮,我可以单击“选择”。当我点击选择时,我需要使用归属列records更新+1列id

如果我使用这样的查询,那个查询在phpMyAdmin中工作:

sqli = ("UPDATE stores SET records = records + 1 WHERE id = 333);

但是我需要在我使用select按钮的行上绑定id。当我单击带有此代码的选择按钮时,phpMyAdmin中的行不会更新。我究竟做错了什么?我收到错误:Undefined index: id in /Applications/MAMP/htdocs/storeproject/updaterecords.php on line 8 Updated Succesfull.

HTML

<form action="updaterecords.php" method="post">
   <button type="submit" class="btn btn-success" name="submit">Select</button>
   <?php include 'updaterecords.php' ?>
</form>

updaterecords.php

<?php error_reporting(E_ALL); ini_set('display_errors', 1);

if (mysqli_connect_errno()) { echo "Error: no connexion allowed : " . mysqli_connect_error($mysqli); } 
?>
<?php

if(isset($_POST['submit'])) {
$id = $_POST['id']; //line 8

    $stmt = $mysqli->prepare("UPDATE stores SET records = records + 1 WHERE id =".$id);

    $stmt->bind_param('i', $id);   

    if ($stmt->execute()) { 
        $success = true;
    }

    $stmt->close();

    $mysqli->close();   
    if($success) {
        echo "Updated Succesfull";
    } else {
        echo "Failed: " .  $stmt->error;
      }
    }

?>

1 个答案:

答案 0 :(得分:0)

进行这些更改

$stmt = $mysqli->prepare("UPDATE stores SET records = records + 1 WHERE id= ?");