gpt4 book ai didi

php - 需要帮助显示当前 mysql 记录并以 php 形式修改

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

提前感谢您提供的任何光线。

我有一个 mysql 数据库,其中包含与每个客户相关的一些字段的客户。目前在我的一台灯服务器上运行。目前我的代码存在安全风险,但我计划获得我正在寻找的功能,然后重新配置代码以获得更严格的安全性。目前我有一个 html 索引文件,它调用 php 脚本来按名字或姓氏搜索 mysql 数据库。根据此查询,它会显示用户列表并允许我修改用户。当我单击修改时,它会提取正确的客户 ID 号,但它不显示任何当前信息,也不允许我更新信息。

总而言之,我想搜索一个客户,它拉出选定的字段并显示内容,让我可以主动更改数据并将其重新发送到数据库。

我的 search.html 代码:

<html>
<body>

<form action="scripts/search.php" method="post">

Firstname: <input type="text" name="firstname">


<input type="submit">
</form>
<form action="scripts/lastnamesearch.php" method="post">

Lastname: <input type="text" name="lastname">




<input type="submit">
</form>
<form action="scripts/phonenumbersearch.php" method="post">

Phone Number: <input type="text" name="phone">


<input type="submit">
</form>
</body>
</html>

我的 search.PHP 脚本://此脚本允许我通过填写其中一个表格并单击提交来搜索数据库。每个表单都调用它自己的单独脚本,我意识到这可能很麻烦,因为我缺乏编码知识。

<?php
$con=mysqli_connect("localhost","root","*****","*******");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM customers WHERE `firstname` LIKE '$_POST[firstname]'");

echo "<table border='1'>
<tr>
<th>id</th>
<th>firstname</th>
<th>lastname</th>
<th>phone</th>
<th>address</th>
<th>notes</th>
<th>additional notes</th>
<th>passwords</th>


</tr>";

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td>" . $row['phone'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "<td>" . $row['notes'] . "</td>";
echo "<td>" . $row['addnotes'] . "</td>";
echo "<td>" . $row['passwords'] . "</td>";
echo "<a href=\"modify.php?id=" . $row['id'] . "\">Modify User</a>";

echo "</tr>";
}
echo "</table>";

mysqli_close($con);
?>

我的 modify.php 脚本://这是我认为我的问题之一所在。当我在 search.php 脚本上单击修改用户时,它会调用此脚本并在地址栏中加载正确的用户/客户 ID,但它不会显示任何现有数据,也不会更新我填写的数据细胞。

<?php
$con=mysqli_connect("localhost","root","crapola1","Computition");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$mysqli_query = "SELECT * FROM customers WHERE ID = $_get[id]";
$mysqli_result = mysqli_query($mysqli_query);
$customer = mysqli_fetch_array($mysqli_result);




?>
<h1> You are modifying a user</h1>
<form action="<?php echo $SERVER['PHP_SELF']; ?>" method="post">
Firstname<input type="text" name="inputFirstname" value="<?php echo $row['firstname']; ?>" /><br />
Notes<input type="text" name="inputNotes" value="<?php echo $row['notes']; ?>" />
<br />
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
<input type="submit" name="submit" value="Modify" />
</form>

再次感谢,我已经搜索这个主题大约一个星期了,拼凑了这么多,但似乎无法克服这个“驼峰”

最佳答案

$_GET 是一个 super global大批 。它应该是大写的。

在此处更改您的 modify.php 上的查询

SELECT * FROM customers WHERE ID = $_get[id] 到大写。

一定是..

SELECT * FROM customers WHERE ID = ".$_GET['id']

此外,严禁将$_GET$_POST 参数直接传递给您的查询,因为它会导致SQL injection。 .您需要切换到 PreparedStatements

关于php - 需要帮助显示当前 mysql 记录并以 php 形式修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21693727/

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