Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP和MySQL,代码不起作用_Php_Mysql - Fatal编程技术网

PHP和MySQL,代码不起作用

PHP和MySQL,代码不起作用,php,mysql,Php,Mysql,我想在一个小型项目中寻求帮助,该项目包括更新MySQL数据库的两条记录,我有一条记录称为nom,另一条记录称为code,我想输入一个页面html或Php(我也不在乎),并更改注册表,例如,如果我有一个名为Juan、代码为123456的注册表,我想能够重命名的名称和代码,在表中只有2列的名称和代码 我希望我的解释正确,非常感谢你的帮助 代码1: <?php $servername = "localhost"; $username = "***"; $password = "***"; $db

我想在一个小型项目中寻求帮助,该项目包括更新MySQL数据库的两条记录,我有一条记录称为nom,另一条记录称为code,我想输入一个页面html或Php(我也不在乎),并更改注册表,例如,如果我有一个名为Juan、代码为123456的注册表,我想能够重命名的名称和代码,在表中只有2列的名称和代码

我希望我的解释正确,非常感谢你的帮助

代码1:

<?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."'";