我正在嘗試使用 php 和 mysql 使用另一個表的查詢資訊執行插入,我知道我沒有正確完成針對 sql 注入的保護部分,我會在最后解決這個問題,然后告訴你為什么他們只去罵不貢獻,請您告訴我如何使用從查詢中獲得的值,謝謝。
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
include("conection.php");
$credits = mysqli_real_escape_string($con, $_POST['credits']);
$namesec = mysqli_real_escape_string($con, $_POST['namesec']);
$change = mysqli_real_escape_string($con, $_POST['change']);
$stmt = $con->prepare("UPDATE students
SET student_credits = (student_credits ?)
WHERE student_qr = ?");
$stmt->bind_param("is", $_POST['credits'], $_POST['namesec']);
$stmt->execute();
$insert_query = $con->prepare("INSERT INTO historical_credits (id_students, credits_paid)
SELECT id_students, ?
FROM students
WHERE student_qr = ?"
);
$insert_query->bind_param("is", $_POST['credits'], $_POST['namesec']);
$insert_query->execute();
mysqli_close($con);
?>
我想使用從查詢中獲得的 id_student 的值將其插入到新表中
uj5u.com熱心網友回復:
您忘記呼叫fetch_assoc()以獲取查詢回傳的行。
您也沒有$namesec在SELECT查詢中參考,因此出現錯誤。如果您使用引數而不是替換變數,這將不是問題。
但是沒有必要在兩個查詢中這樣做。您可以將SELECT查詢作為 中的資料源INSERT。
$insert_query = $con->prepare("
INSERT INTO historical_credits (id_students, credits_paid)
SELECT id_students, ?
FROM students
WHERE student_qr = ?");
$insert_query->bind_param("is", $_POST['credits'], $_POST['namesec']);
$insert_query->execute();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/504981.html
上一篇:MYSQL根據逗號位置替換
