heloo我有一个ajx调用函数,它将来自下拉列表的信息填充到一个带有ajax文本输入的表中。
我想知道无论如何我都可以通过使用这些文本字段更新数据库中的记录而UPDATE函数我是相对论新的并且互联网没有引起太多关注。
我从下拉列表中出现了一个按钮,但据我所知,你不能在php中使用表单,而这个已经提交的页面已经提交了一个php函数而且2无法在一次。
我想知道当用户点击按钮时,下面文本框中的数据是否有可能更改,这些细节会在数据库中更新吗?
我是ajax和php的新手,所以帮助会很棒。
PS。我知道这不安全我希望它首先发挥功能,在它上线之前我会保护它。
这是代码:
<?php
$q = $_GET['q'];
$con = mysqli_connect('server','uid','pwd','dbname');
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"account.php");
$sql="SELECT * FROM account WHERE name = '".$q."'";
$result = mysqli_query($con,$sql);
echo "<table border='1'>
<tr>
<th>Your Name</th>
<th>Your Email</th>
<th>Your Password</th>
<th>Your User Level</th>
<th>Save Changes</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td> <input type='text' name='txt_yourname' id='txt_yourname' value='" .$row['name']."' required='required' /> </td>";
echo "<td> <input type='text' name='txt_email' id='txt_email' value='" .$row['email']."' required='required' /> </td>";
echo "<td> <input type='text' name='txt_password' id='txt_password' value='" .$row['password']."' required='required' /> </td>";
echo "<td> <input type='text' name='txt_userLevel' id='txt_userLevel' value='" .$row['user_level']."' required='required' /> </td>";
echo "<td> <input type='button' name='btn_user' id='txt_user' type='submit' value='cheese'/> </td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
答案 0 :(得分:0)
这些语句执行用户输入,最多可以打开SQL Injection attack。你不想这样做。
$q = $_GET['q'];
$sql="SELECT * FROM account WHERE name = '".$q."'";
$result = mysqli_query($con,$sql);
要回答您的问题,为了更新您想要的行,您需要一种方法在数据库中识别已更改的行。一种方法是将行的主键作为HTML表格行中的字段/属性包含在内,但是我会把它留给更熟悉这个区域的人来说明这是不是一个好主意。
您还想要转义并检查用户在进行更新时可以输入的所有字段的类型。