未定义的变量:......在...第9行

时间:2014-01-26 14:30:29

标签: php mysql

我正在尝试创建一个更新数据库的表单,但它给了我两个错误。你知道它可能是什么吗? 错误:

  

注意:未定义的变量:第9行的D:\ 2013.1 \ xampp \ htdocs \ ranklist_get.php中的点

     

注意:未定义的变量:第9行的D:\ 2013.1 \ xampp \ htdocs \ ranklist_get.php中的Skype

welcome.html

<body>
<form action="ranklist_get.php" method="get">
Skype: <input type="text" id="Skype"><br>
Points: <input type="number" id="Points"><br>
<input type="submit">
</form>
</body>
</html>

ranklist_get.php

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

mysqli_query($con,"UPDATE Persons SET Points='".$Points."' WHERE Skype='".$Skype."'");

mysqli_close($con);
?>

3 个答案:

答案 0 :(得分:1)

在查询中使用变量前,使用预期值初始化变量。

$Points=mysqli_real_escape_string($con,$_GET["Points"]);
$Skype=mysqli_real_escape_string($con,$_GET["Skype"]);

还要确保将name属性添加到表单字段中。 name="Points"name="Skype",否则无效。

答案 1 :(得分:1)

GET个变量存储在全局$_GET数组中(就像POSTCOOKIE)。您可以直接在代码中使用它们,例如$_GET["Points"],也可以将它们存储在变量中。

请注意,您应该在每个输入上使用name属性来指定它在数组中的键。

在代码顶部放置:

$Points = $_GET["Points"];
$Skype = $_GET["Skype"];

您的表单应该像这样重写:

<form action="ranklist_get.php" method="get">
Skype: <input type="text" id="Skype" name="Skype"><br>
Points: <input type="number" id="Points" name="Points"><br>
<input type="submit">
</form>

您还应该像这样清理MySQL查询:

$query = mysqli->prepare($con, "UPDATE Persons SET Points=? WHERE Skype=?");
$query->bind_param('ss', $points, $skype);

$points = $_GET["Points"];
$skype = $_GET["Skype"];

$query->execute();

您可以在此处阅读有关预准备陈述的更多信息:http://php.net/manual/en/mysqli.prepare.php

答案 2 :(得分:0)

将HTML设为

<html>
<body>
<form action="ranklist_get.php" method="get">
Skype: <input type="text" id="Skype" name="Skype"><br>
Points: <input type="number" id="Points" name="Points"><br>
<input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

ranklist_get.php

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

if($_REQUEST['Submit']=='Submit'){
$Points=$_REQUEST['Points'];
$Skype=$_REQUEST['Skype'];
mysqli_query($con,"UPDATE Persons SET Points='".$Points."' WHERE Skype='".$Skype."'");
}
mysqli_close($con);
?>

在使用之前必须先获取值。