gpt4 book ai didi

php - 如何使用受控语句和 html 表单进行用户输入,通过 php 添加一行到 mysql 数据库?

转载 作者:行者123 更新时间:2023-11-29 12:17:56 28 4
gpt4 key购买 nike

我正在尝试在我的网站上建立一个“管理”部分。我可以在其中更新工单(或工单,如果您喜欢这个术语)上的客户状态。我可以在文本字段中输入 int 并点击提交DELETE,但我无法让 addRow 函数正常工作。它没有导致错误,这让我相信我没有正确传递变量。

以下是 admin.php 上的表单:

<form name="newRow" METHOD="post" ACTION="q.php">
Status of New Entry: <input type="text" value="Open" name="newStatus" /><br>
Type of Maintenance being completed: <input type="text" value="Software Maintenance" name="maintType" /><br>
<input type="submit" value="Add" name="newEntry" />
</form>

<form name="delRow" METHOD="post" ACTION="q.php">
<input type="text" name="deleteID" />
<input type="submit" value="Delete" name="delEntry"/>
</form>

至于我的q.php,这是连接到我的数据库后的内容(同样,我使用delEntry/delRow部分没有问题,所以我看不出连接/mysqli初始化问题会如何问题是:

//prepare statements
$addData = $conn->prepare("INSERT INTO $tname (status, mainttype) VALUES (?, ?)");
$addData->bind_param("s,s", $newStatus, $maintType);

$delData = $conn->prepare("DELETE FROM $tname WHERE id=?");
$delData->bind_param("i", $deleteID);
//end prepared statements

//if New Entry Button is pressed
$newStatus = isset($_POST['newStatus'])
? $_POST['newStatus']
: '';
$maintType = isset($_POST['maintType'])
? $_POST['maintType']
: '';
$addData->execute();
if ( false===$addData ) {
die('prepare() failed: ' . htmlspecialchars($mysqli->error));
}
else{
printf("rows inserted: %d\n", $addData->affected_rows);
}

//if Del Entry Button is pressed
if ( isset( $_POST['delEntry'] ) ) {
$deleteID = $_POST['deleteID'];
$delData->execute();
}

$addData->close();
$delData->close();
$conn->close();
?>

我的列根据 phpMyAdmin 进行匹配:

$addData = $conn->prepare("INSERT INTO $tname (status, mainttype) VALUES (?, ?)");

状态和维护类型(是的 2 t)。我的 ID(主 ID)是一个 auto_incriment,所以我将其省略,因为我不想意外导致任何关键重复错误。它的 auto_incrimment 已经过测试,似乎工作正常。

为了让它更有趣,我添加了一个 echo $newStatus;在我准备好的语句执行之后,它会返回正确的值。我似乎在添加新行时遇到问题。仍然没有生成错误。

printf("rows inserted: %d\n", $addData->affected_rows);

返回也有 0 行受到影响。

最佳答案

简单的逗号问题。上:

$addData->bind_param("ss", $newStatus, $maintType);

我将其列为:

$addData->bind_param("s,s", $newStatus, $maintType);

关于php - 如何使用受控语句和 html 表单进行用户输入,通过 php 添加一行到 mysql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29465636/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com