我无法使用此脚本将数据输入到我的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错误?
删除$id
并WHERE
它们用于更新或删除行,在您的情况下插入在下面的查询中使用
$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
子句创建一个不与任何其他现有行关联的新记录,即您应该跳过该部分。
同时,表格上有更新声明:
UPDATE table_name
SET column1=value1, column2=value2,...
WHERE some_column=some_value;
- 如果您确实希望通过使用
where
子句将更新与某个特定行相关联,以指示要更新的行。
不是我最喜欢的来源,但您可以查看插入和更新。
这是工作代码:
<?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();
?>