javascript - 当我在 mysql 中存储 JavaScript 变量时,它如何链接到当前用户的 ID?

标签 javascript php mysql

假设有一个网站,有一个按钮,每次单击该按钮时,都会使用 javascript 将 javascript 变量“javascriptx”的值增加 +1。 UserA(MySql 表上的 id=1)登录网站并按按钮 3 次,因此 javascriptx = 2。

下次 UserA 登录时,我希望 javascriptx 仍然等于 2(假设没有再按下该按钮),因此我需要将该 javascript 变量转换为 php 变量并将其发送到 MySql。据我了解,这是正确的方法:

将以下内容添加到 JavaScript 代码中:

var xhr = new XMLHttpRequest();
xhr.open("get","/path/to/php/page.php?phpx=javascriptx");
xhr.send();

现在,php 变量“phpx”与 javascript 变量“javascriptx”具有相同的值

然后,需要将该 php 变量发送到 MySql 表,因此在 php 代码中添加以下内容:

($_GET['phpx'])

从这里开始,我迷路了。 phpx 存储在 MySql 表中的什么位置?更具体地说,它如何知道将其与 id=1 的用户放在同一行?

最佳答案

您应该使用类似 mysqli 的内容连接到 MySQL 数据库。 :

$database = new mysqli(db_host, db_username, db_pass, db_name);

然后您可以使用 prepared statements 查询数据库读/写数据。在这个粗略的示例中,数据将向您的 Web 应用程序或您发出请求的任何位置返回 JSON 响应:

//set user id from post variable
$uid = $_POST['uid'];

//store sql query as string
$sql = "SELECT phpx FROM users WHERE uid=?";

//initiate new prepared statement
$stmt = $database->stmt_init();
$stmt->prepare($sql);

//pass uid var to statement
$stmt->bind_param('s', $uid);

//store result as var
$stmt->bind_result($phpx);

$stmt->execute();

//catch errors
if ($stmt->errno) {
    die("error: " . $stmt->error);
} else {

//store result and send as response
    $stmt->store_result();
    if($stmt->num_rows){
        while($stmt->fetch()){
            $phpx_packet[] = array(
                "uid" => $uid,
                "phpx" => $phpx
            );
        }
        echo json_encode($phpx_packet);
    }
}

//close statement
$stmt->close();

关于javascript - 当我在 mysql 中存储 JavaScript 变量时,它如何链接到当前用户的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30282244/

相关文章:

javascript - 占位符适用于文本,但不适用于使用此 JavaScript 的 IE/Firefox 中的密码框

javascript - 使用 javascript 从图像中删除灰度 css 过滤器

php - 从 php 函数运行 artisan 命令

php - SqliGestionCongeBundle :Default:add. html.twig 中不存在对象 "email"的方法 "Symfony\Component\Form\FormView"

sql - 在 MySQL 的连接中优化 OR

javascript - 对于每种输入类型,使用 javascript 获取值

javascript - MarkLogic 9 Clusters - 使用 SJS 限制某些字段

php错误,甚至在定义变量之后

mysql 将一行分成两行

php - mysql配置: access denied error (1045)