我正在尝试更新mysql表中的列值,但根本没有发生任何事情。
它既不显示更新消息也不显示错误消息。
html表格:
<html>
<form action='xyz.php' method='post'>
<input type='text' size='25' id='country' name='country'>
<input type='submit' id='submit' value='update'>
</form>
</html>
php代码:
<?php
session_start();
$con=mysqli_connect("localhost","root","","server2go");
if(mysqli_connect_errno())
echo "<h2>Failed to connect to MySQL database!".mysqli_connect_errno();
if(isset($_POST['submit'])){
$country=$_POST['country'];
$userid=987654326;
$sql2=mysqli_query($con, "UPDATE user_profile set country='$country' WHERE userid='$userid'");
if(!$sql2){
die(mysqli_error($con));
echo "<h6>Failed to update</h6>";
}
else {
echo "<h5>Successfully updated!</h5>";
}
}
?>
我在这里做错了什么?
帮助。
答案 0 :(得分:4)
您的代码未执行的原因是您已设置条件语句
if(isset($_POST['submit'])){...}
但没有为您的提交按钮命名:
<input type='submit' id='submit' value='update'>
重命名为:
<input type='submit' id='submit' value='update' name='submit'>
对于POST变量,你不能单独依赖id
。
<强>脚注:强>
为了帮助您在使用现有内容时保护自己免受SQL注入攻击,直到希望转移到准备好的语句,请使用:
$userid = (int)987654326; // assuming it's an integer
$country = stripslashes($_POST['country']);
$country = mysqli_real_escape_string($con,$_POST['country']);
答案 1 :(得分:0)
请更改
<input type='submit' id='submit' value='update'>
要:
<input type='submit' id='submit' value='update' name='submit'/>
因为没有设置name
属性,控件不会出现这种情况。
if(isset($_POST['submit'])){
希望它适合你。
答案 2 :(得分:0)
更改submit input
form
来自这个
<input type='submit' id='submit' value='update'>
到这个
<input type='submit' id='submit' name='submit' value='update'>
mysqli
不会自动保护您的查询。绑定你的价值。
通过在顶部
error_reporting(E_ALL);