在PHP中从POST [id]表单获取数据

时间:2016-07-04 12:59:09

标签: php mysql

在显示数据库数据的表上,我有一个表单,其中有一个文本区域,用户可以在其中键入收据编号并提交以保存在特定行的数据库中。下面的PHP代码是在提交表单后更新数据库的代码。 我想选择特定行的其余详细信息,因此我使用了已提交收据的$_POST['id']id是主键。然而,我遇到了挑战,因为我无法使用$id = $_POST['id'];从数据库中获取数据,而我在函数外部创建了update语句,SELECT STATEMENT语句完全正常但if(isset($_POST['submit'])) { $rec = $_POST['receipt']; $id = $_POST['id']; //reate connection $sql = "UPDATE customer SET `receipt` = '".$_POST['receipt']."', `date_entered` = NOW(), `receipt_lock` = 1 WHERE `id` = '".$_POST['tid']."' AND receipt_lock = 0"; if ($conn->query($sql) === TRUE) { // echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; exit(); $conn->close(); } function wall(){ global $recp; global $id; // Create con $sql = "SELECT * FROM customer WHERE id ='$id'"; $result1 = mysqli_query($conn, $sql); $resultarr = mysqli_fetch_assoc($result1); // fetch data $name = $resultarr['name']; echo "$name"; //Does not display $amount = $resultarr['amount']; $transaction_id = $resultarr['trans_id']; $date = $resultarr['time_paid']; } else { echo "this is not right!; } wall(); 没有。我该怎么办呢?任何人?

document.querySelector('.someform').addEventListener('click', clickHandler);

function clickHandler(e) {        
    var input = e.path.filter(function (x) {return x.type === 'checkbox'});

    if(input.length) {
        console.log(input.pop().parentNode);
    }

}

3 个答案:

答案 0 :(得分:0)

您的SQL查询中似乎使用的是$_POST['tid']而不是$_POST['id']$id

答案 1 :(得分:0)

忽略有关SQL安全性的所有(有效)问题并解决您的问题 - 如何将$ id变量作为参数传递给wall函数。?

wall($id);

function wall($id){

    $sql = "SELECT * FROM customer WHERE id ='$id'";
    // ... use prepared statements for security...
    ...
}

答案 2 :(得分:-1)

在安全性方面,你所做的是一个很大的nono。在将查询添加到查询中之前,请确保将其转义为POST参数。

$id = $_POST['id'];
$id = mysqli_real_escape_string($conn, $id); 

http://php.net/manual/ro/mysqli.real-escape-string.php

考虑将数据作为函数函数wall($ id)的参数而不是全局参数发送。