我正在尝试创建一个更新数据库的表单,但它给了我两个错误。你知道它可能是什么吗? 错误:
注意:未定义的变量:第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);
?>
答案 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
数组中(就像POST
和COOKIE
)。您可以直接在代码中使用它们,例如$_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);
?>
在使用之前必须先获取值。