簡體   English   中英

嘗試在PHP / MySQL中使用Prepared語句時遇到多個錯誤

[英]Getting multiple errors when trying to use Prepared statements in PHP/MySQL

我正在嘗試使用准備好的語句作為最佳實踐,但我不斷遇到這些錯誤。

1)您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊,以在')VALUES(?,?,?,?,?,?,?,?,?,?)附近使用正確的語法。

2)未定義的索引:C:\\ wamp64中的finalExamGrade(這適用於所有超全局變量)

3)致命錯誤:在C:\\ wamp64 \\中的布爾值上調用成員函數bind_param()

有任何解決辦法嗎? 想法?

PHP / MySQL的

 require_once("DBCONNECT.php");
    $id = $_REQUEST['studentID'];
    $last = $_REQUEST['lastName'];
    $first = $_REQUEST['firstName'];
    $grade1 = $_REQUEST['test1Grade'];
    $grade2 = $_REQUEST['test2Grade'];
    $grade3 = $_REQUEST['test3Grade'];
    $grade4 = $_REQUEST['test4Grade'];
    $final = $_REQUEST['finalExamGrade'];


    $stmt = $connect->prepare("SELECT * FROM students) VALUES (?, ?, ?, ?, ?,?, ?)");
    $stmt->bind_param("issiiiii", $id, $last, $first, $grade1, $grade2, $grade3, $grade4, $final);

    $stmt->execute();

    var_dump($id, $last, $first, $grade1, $grade2, $grade3, $grade4, $final);

    $stmt->close();
    $connect->close();
$stmt = $connect->prepare("SELECT * FROM students) VALUES (?, ?, ?, ?, ?,?, ?)");

上面的代碼是所有問題的根源。

  1. 您使用SELECT插入數據。 應該是INSERT。
  2. students桌后有一個額外的支架。
  3. 總數參數與bind_param之一不匹配。 有7個? 在您的代碼中要存儲8個變量時。

更改為此代碼

$stmt = $connect->prepare("INSERT INTO students(col1, col2, col3, col4, col5, col6, col7, col8) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("issiiiii", $id, $last, $first, $grade1, $grade2, $grade3, $grade4, $final);

我不再進一步解釋此代碼,因為已經在注釋中對其進行了討論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM