PHP准备语句更新表单


PHP prepared statement update form

为了便于参考,我将这个问题分成几个段落;

  1. 我有一个网站,有一个按钮,加上从数据库1当前的数字。

  2. 我现在已经使用了一个"更新"的形式,以便在数据库中加上数字。我使用了预处理语句:

    <?php
        require_once('connectvars.php');
        $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
            if (mysqli_connect_errno()) {
                echo 'Cannot connect.' . mysqli_connect_error(); 
                exit();
                }
            if ($stmt = $mysqli->prepare('UPDATE `javascriptbutton` SET `clicks`=? WHERE `id`=?')) { 
                $stmt->bind_param('ii', $clicks, $id);
                $clicks = $_POST['clicks'] + 1; 
                $id = 1;
                $stmt->execute();
                $stmt->close();
            } else {
                echo 'Woops, something went wrong.: ' . $mysqli->error;
            }
    

    ?>

  3. 当用户按下html中的按钮时,它调用一个包含Ajax的脚本,该脚本引用了上面的php脚本。

  4. 每次按下按钮时,这个php文件必须从数据库列"点击"中获取当前的"点击",其中id=1,并加上1并将其插入数据库。

  5. 我一直在研究和查看我的代码,我可以得出结论,它与:

    $clicks = $_POST['clicks'] + 1;

$_POST['clicks']应该是数据库中的当前数字,并加上1。

问题:我是否必须创建一个选择表单,以获得当前的点击数据库?或者我如何加上当前的点击与1,并把新的数字回数据库,直到下一次一个人按下按钮?

如果这5个步骤中有任何你想深化的,请告诉我。

你可以直接使用:

$mysqli->prepare("UPDATE `javascriptbutton` SET `clicks`=`clicks`+1 WHERE `id`=?")

编辑完整代码:

    if ($mysqli->prepare("UPDATE `javascriptbutton` SET `clicks`=`clicks`+1 WHERE `id`=?")) { 
        $stmt->bind_param('i', $id);
        $id = 1;
        $stmt->execute();
        $stmt->close();
    }