PHP将SQL表更新为登录用户

时间:2017-10-27 12:20:41

标签: php mysql

我正在尝试从文本框中获取登录用户的输入以插入其行中的列。现在我可以将数据插入到我的数据库中,但它会作为新记录出现。我很难找到一种方法将其指向特定的登录用户,因此它会添加到该行而不是创建新记录。

payment.php中的表单代码:

<form class="test" action="payment.php" method="post" autocomplete="off">
    <input type="text" required class="text" name='bitaddress' placeholder="Public Key...">
    <input class="wow shake" data-wow-delay="0.3s" type="submit" value="Accept" name="accept" />
</form>

payment.php中的PHP代码:

<?php 
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['accept'])) { 
        require 'paymentProccess.php';    
    }
}
?>

最后我的代码paymentProccess.php

<?php
require 'db.php';

$bitaddress = $mysqli->escape_string($_POST['bitaddress']);

$user_name = $_SESSION['user_name'];
$email = $_SESSION['email'];
$active = $_SESSION['active'];
$paid = $_SESSION['paid'];

$sql = "INSERT INTO users (bitaddress) " . "VALUES ('$bitaddress')";
if ( $mysqli->query($sql) ){

}
?>

1 个答案:

答案 0 :(得分:2)

感谢您的帮助。 3-4个小时后,如果其他人有这个问题,我最终会解决这个问题。

首先我得到了用户的“id”,这是我的主键。

$id = $_SESSION['id'];

然后在我的paymentProccess.php页面上我使用了这个:

<?php
require 'db.php';

$bitaddress = $mysqli->escape_string($_POST['bitaddress']);

$user_name = $_SESSION['user_name'];
$email = $_SESSION['email'];
$active = $_SESSION['active'];
$paid = $_SESSION['paid'];
$id = $_SESSION['id'];

$sql = "UPDATE users SET bitaddress = '$bitaddress' WHERE id = '$id'";

if ( $mysqli->query($sql) ){

}
?>

注意:我不确定这是否是最有效的方式。它可能有安全漏洞等。但是当我刷新phpMyAdmin时,我已经释放了大量的压力。