PHP和MySQL,代码不起作用
我想在一个小型项目中寻求帮助,该项目包括更新MySQL数据库的两条记录,我有一条记录称为nom,另一条记录称为code,我想输入一个页面html或Php(我也不在乎),并更改注册表,例如,如果我有一个名为Juan、代码为123456的注册表,我想能够重命名的名称和代码,在表中只有2列的名称和代码 我希望我的解释正确,非常感谢你的帮助 代码1:PHP和MySQL,代码不起作用,php,mysql,Php,Mysql,我想在一个小型项目中寻求帮助,该项目包括更新MySQL数据库的两条记录,我有一条记录称为nom,另一条记录称为code,我想输入一个页面html或Php(我也不在乎),并更改注册表,例如,如果我有一个名为Juan、代码为123456的注册表,我想能够重命名的名称和代码,在表中只有2列的名称和代码 我希望我的解释正确,非常感谢你的帮助 代码1: <?php $servername = "localhost"; $username = "***"; $password = "***"; $db
<?php
$servername = "localhost";
$username = "***";
$password = "***";
$dbname = "***";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT code, name FROM codes";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>Name</th></tr>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["code"]."</td>"
"<td>".$row["name"]." </td>"
"<td><a href='editar.php?id=".$row["code"].&.$row["name"]."'>Editar</a></td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
您的代码中存在多个问题
$name = $_GET["name"];
$code = $_GET["code"]; // forget to assign it
此外:
<td><a href='editar.php?id=".$row["code"].&.$row["name"]."'>Editar</a></td></tr>;
其他信息,我没有在$code
周围使用引号,因为$code
看起来像一个整数,所以不需要将其转换为字符串
顺便说一句,您应该检查$name
和$code
是否正确,因为如果您这样使用它们,可以进行一些SQL注入。[查看@Twinfriends评论]
始终检查输入
编辑:作为@Mubashar注释输出,使用例如:
感谢@Masivuye的is评论 看一看。您的更新出现了问题。我认为错误发生在这里:
$sql=“update nom,code SET WHERE name=$nom”
您是否尝试过$sql=“UPDATE nom,code SET WHERE name=”.$nom.;
?更新nom,code SET
->设置什么?任何列?如果您在“”之间写入变量,它将计为字符串。“UPDATE nom,code SET WHERE name=”$nom”"; 用这个。我建议您使用prepare语句并使用适当的消毒过滤器过滤输入。为什么你在单引号中有$nom
,但$code
没有近乎完美的答案,提到了所有内容,查询中还有一点语法错误。有关SQL注入的详细信息。@MasivuyeCokile认为I代码是一个数字,它不需要“转换”为字符串。这将生成未定义的索引$nom=$\u GET[“nom”]代码>@kaldoran yhea我知道,但你可以在你的答案中添加一点关于这一点的补充
<td><a href='editar.php?id=".$row["code"].&.$row["name"]."'>Editar</a></td></tr>;
<td><a href='editar.php?code=".$row["code"]."&name=".$row["name"]."'>Editar</a></td></tr>;
$sql = "UPDATE codes SET name = '".$name."', code = $code WHERE name= '".$nom."'";