如何在PHP表中保存js变量?



在js文件中计算测验的分数后,我试图将该变量用于更新PHP文件中特定学生的分数。

脚本在设置用户id的用户区执行。

errors:指定的用户没有更新,可能是变量没有到达或者php没有正确设置;

将grade变量从js传输到PHP文件,我使用了以下代码,该代码在测试

结束时执行quiz.js

var vote = userScore * 10;
window.open('/php/vote.php?vote='+vote);

private-area.php

<?php
require 'php/config.php';
$_SESSION["id_utente"];
$sessionId = $_SESSION["id_utente"];

$user = mysqli_fetch_assoc(mysqli_query($connessione, "SELECT * FROM utenti WHERE id_utente = $sessionId"));
?>

vote.php(第一次更新)

<?php
require_once('config.php');
$var_voto = $_GET['vote'];

if($connessione->connect_error){
echo "Registrazione avvenuta con successo";
$query = $connessione->prepare("UPDATE utenti SET voto = $var_voto  WHERE id = $user ");
$query->bind_param('voto', $id);
$result = $query->execute();
}else{
echo "Error";
}

?>

可以使用bindParam像下面的

$query = $connessione->prepare("UPDATE utenti SET voto =:var_voto WHERE id =:user ");

查询→美元bindParam (: var_voto, var_voto美元);

$query->bindParam(':user', $user);

您的mysql显示不正确。你不应该在SQL查询中使用变量,当然也不应该在准备好的语句中使用变量,以避免任何SQL注入。

$query = $connessione->prepare("UPDATE utenti SET voto = ? WHERE id = ?");
$query->bind_param('ii', $var_voto, $user);
$result = $query->execute();

假设数据库中的votoid是整数类型。如果是字符串/varchar,将bind_param中的ii替换为ss

作为解释,使用?在准备好的查询中指定参数化数据,并使用bind_param将它们与数据绑定。第一个参数是数据类型,我们在上面的代码中使用i作为整数,其中两个(即ii),因为我们绑定了两个参数($var_voto$user),参见https://www.php.net/manual/en/mysqli-stmt.bind-param.php了解更多。第二个、第三个、第四个、第五个等参数是包含我们希望插入(或绑定)到查询的数据的变量。

最新更新