提问人:Arth Quilitis 提问时间:7/19/2023 最后编辑:ADysonArth Quilitis 更新时间:7/19/2023 访问量:59
使用 PHP/HTML 上的文本区域删除数据库表上的数据
Delete data on database table using text area on PHP/HTML
问:
我在使用文本区域删除数据库表上的数据时遇到了问题, 我有一个文本区域,将数据插入数据库表 我输入喜欢
A
B
C
D
然后它将在数据库表上的不同列上输入。 现在我有一个新代码,我想在输入
A
B
C
D
在文本区域。 但不会删除。 当我在文本区域输入 A、B、C、D 等格式时,它会删除数据库表上的数据。但我希望它喜欢一种格式
A
B
C
D
这是我删除数据的代码。
<?php
$host = "localhost";
$username = "root";
$password = "";
$db_name = "wip";
$mysqli = new mysqli($host, $username, $password, $db_name);
// Check the connection
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
// Get the submitted data
$lines = $_POST['lines'] ?? '';
// Split the lines into an array using newline character
$linesArray = explode("\n", $lines);
// Prepare the SQL statement
$sql = "DELETE FROM wiptest WHERE line1 = ? AND line2 = ? AND line3 = ? AND line4 = ?";
// Prepare and bind the statement
$stmt = $mysqli->prepare($sql);
if (!$stmt) {
die("Prepare failed: " . $mysqli->error);
}
$stmt->bind_param("ssss", $line1, $line2, $line3, $line4);
foreach ($linesArray as $line) {
$lineParts = explode(',', $line);
$line1 = trim($lineParts[0] ?? '');
$line2 = trim($lineParts[1] ?? '');
$line3 = trim($lineParts[2] ?? '');
$line4 = trim($lineParts[3] ?? '');
echo "Input: $line1, $line2, $line3, $line4<br>"; // Add this line for debugging
// Execute the statement to delete the data
if (!$stmt->execute()) {
die("Execute failed: " . $stmt->error);
}
}
// Check if any rows were affected
if ($stmt->affected_rows > 0) {
echo "Data deleted successfully!";
} else {
echo "No matching data found to delete.";
}
// Close the statement and connection
$stmt->close();
$mysqli->close();
header("Location: maincanonout.php");
exit();
?>
答:
0赞
Stas Trefilov
7/19/2023
#1
您的代码正在删除由 4 个逗号分隔值标识的行,如下所示:
A,B,C,D
E,F,G,H
I,J,K,L
每个标识符都包含 4 个字符串值,占据一行,如果多行(在我的示例中为 3),则可能具有多个标识符。
现在,如果你想垂直放置你的标识符(但为什么呢?),像这样:
A
B
C
D
...然后,您需要修改代码,如下所示(删除不再需要的语句):foreach
$line1 = trim($linesArray[0] ?? '');
$line2 = trim($linesArray[1] ?? '');
$line3 = trim($linesArray[2] ?? '');
$line4 = trim($linesArray[3] ?? '');
$stmt->execute();
评论
$linesArray = explode("\n", $lines);
$line1
$line2
$line3
$line4
$lineParts = explode(',', $line);
var_dump($_POST);
echo "Input: $line1, $line2, $line3, $line4<br>";
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
mysqli_connect()
new mysqli()