在顯示數據庫數據的表格上,我有一個表單,其中有一個文本區域,用戶可以在其中鍵入收據編號並提交以保存在數據庫中指定行。下面的PHP代碼是在表單提交後更新數據庫的。 我想挑選特定行的其餘細節,因此我使用已提交收據的$_POST['id']
。主要關鍵是id
。然而我有一個挑戰,因爲我不能從數據庫中獲取數據,我使用$id = $_POST['id'];
之前創建的函數update
聲明完美,但SELECT STATEMENT
沒有。我該如何解決它?任何人?從PHP中的POST [id]表格獲取數據
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();
https://www.owasp.org/index.php/SQL_Injection –
當您設置'$ rec = $ _POST ['receipt'];'時,您也有'global $ recp'。無論如何,'$ _POST'是一個超級全球性的,你可以在任何地方訪問它,包括你的功能。不需要討厭的'全球'。正如@MattS指出的那樣,您遇到的更大問題是您對SQL注入敞開大門。 –
嘗試使用echo $ name而不是echo「$ name」 –