簡體   English   中英

我無法使用准備好的語句將數據輸入到表中

[英]I can't input the data into my table using prepared statements

我無法使用以下腳本將數據輸入到我的MySQL表中:

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
session_start();
include '../scripts/test_ses.php';
include 'connection.php';
$date = date("Y-m-d");   
/* Set our params */
$id = $_POST['id'];
$status = $_POST['status'];
$active = 1;
$sql = "INSERT INTO TBL_Holiday (Status, Active, DateOfChange) VALUES (?, ?, ?) WHERE idRequest =$id";

$stmt = $conn->prepare($sql);

/* Bind our params */
$stmt->bind_param('iisi', $status, $active, $date, $id);

/* Execute the prepared Statement */
$stmt->execute();

/* Close the statement */
$stmt->close();
?>  

變量$ id,$ status的數據是由表單設置的,是否有任何辦法通過在Ajax的表單頁面上警告腳本來顯示腳本的php錯誤?

刪除用於更新或刪除行的$idWHERE ,在這種情況下,請在查詢下方插入

$sql = "INSERT INTO TBL_Holiday 
             (Status, Active, DateOfChange) VALUES 
             (?, ?, ?)";

或者,如果您想更新,則需要使用以下查詢

$sql = "UPDATE TBL_Holiday SET 
           Status= ?,
           Active= ?,
           DateOfChange= ? 
        WHERE idRequest = ?";


/* Bind our params */
$stmt->bind_param('iisi', $status, $active, $date, $id);

通過具有其ID ..進行更新操作。

$sql = "UPDATE TBL_Holiday SET Status='$status', Active='$active', DateOfChange='$date' WHERE idRequest =$id";

否則..通過..插入

$sql = "INSERT INTO TBL_Holiday (Status, Active, DateOfChange) VALUES ('$status', '$active', '$date')";

如果需要同時使用條件,則無需使用插入,而需要使用更新查詢。 所以你的情況會是這樣,

$sql = "UPDATE  TBL_Holiday SET Status= ?,Active= ?,DateOfChange=? WHERE idRequest =$id";

您正在將INSERT語句與UPDATE語句混合

插入語句的格式為:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3,...);
  • 使用where子句where不與任何其他現有行關聯的位置創建新記錄的where ,即,您想跳過該部分。

同時,更新語句的形式為:

UPDATE table_name
SET column1=value1, column2=value2,...
WHERE some_column=some_value;
  • 實際上,您確實希望通過使用where子句將您的更新與某些特定行相關聯,以指示要更新的行。

不是我最喜歡的資源,但是您可以看一下insertupdate

這是工作代碼:

<?php
    /* Set our params */
    $date = date("Y-m-d");
    $id = $_POST['id'];
    $status = $_POST['status'];
    $active = 1;

    /*Create executed SQL*/
    $sql = "UPDATE TBL_Holiday SET 
            Status= ?, 
            Active =?, 
            DateOfChange =?  
            WHERE idRequest = ?";

    /*Prepare SQL connection*/   
    $stmt = $conn->prepare($sql);

    /* Bind our params */
    $stmt->bind_param('iisi', $status, $active, $date, $id);

    /* Execute the prepared Statement */
    $stmt->execute();

    /* Close the statement */
    $stmt->close();
?>

暫無
暫無

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

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