从URL获取id;PHP,MySQL
嗨,我一直很好奇如何在url中获取id,比如php?pid=4,并在sql的更新语句中使用它。这是我的代码,但由于url中的变量id未定义,无法正常工作 my function.php从URL获取id;PHP,MySQL,php,mysql,Php,Mysql,嗨,我一直很好奇如何在url中获取id,比如php?pid=4,并在sql的更新语句中使用它。这是我的代码,但由于url中的变量id未定义,无法正常工作 my function.php function update_spot(){ $id=$_GET[pid]; if (isset($_POST['update'])){ $sql="UPDATE reports SET date_time_started='$_POST[date1]' , date_time_finished=
function update_spot(){
$id=$_GET[pid];
if (isset($_POST['update'])){
$sql="UPDATE reports SET date_time_started='$_POST[date1]' ,
date_time_finished= '$_POST[date2]',
barangay='$_POST[brgy]',
street= '$_POST[street]',
owner='$_POST[owner]',
cause='$_POST[cause]',
motive='$_POST[motive]',
firfighter='$_POST[firefighter]'.
civilian='$_POST[civilian]',
ifirefighter='$_POST[ifirefighter]',
icivilian='$_POST[icivilian]',
occupancy='$_POST[occupancy]',
ed='$_POST[ed]',
alarm='$_POST[alarm]'
where id='".$id."' ";
if (!mysql_query($sql)){ die('Error: ' . mysql_error()); } ?>
<script type='text/javascript'>alert('sucessful changed try it next time you log
in.');window.location='view_inbox.php';</script> <?php
}
}
似乎我无法在url中获取id。我的url以php?pid=5的形式显示,应该是
$id = $_GET['pid'];
在$\u上使用引号获取数组访问权限
$pid = $_GET['pid'];
此外,您还混合了$\u GET和$\u POST。根据表单的GET或POST方法,您应该使用其中一种方法
您还需要更改访问它的所有区域。即
barangay = '$_POST[brgy]';
这应该是,以及之后的所有其他行
barangay = $_POST['brgy'];
@在上面的例子中,它仍然可以工作,但会导致php警告,表示未定义的php常量将被假定为字符串
我会转储get global并查看变量是否存在,例如var_dump$\u get 注意,代码很容易被sql注入您有一个。在“$\u POST[firefighter]”之后,您现在应该使用mysqli或PDO库,而不是mysql。确保你对输入内容进行了清理,否则你基本上是在让人们自由支配你的数据库。请阅读《感谢你的观察》im bit huggard hehe.。好的,谢谢你的帮助。你关于混合GET和POST的评论是不正确的。您可以使用GET参数发布到URI,并且每组数据将在各自的超级全局数组$\u GET和$\u POST中可用。感谢您的回复。现在我得到了这个错误,你的SQL语法有一个错误;查看与您的MySQL服务器版本对应的手册,以了解使用near'的正确语法。第7行的平民class='1',ifirefighter class='3',icivilian class='8',占用class='Structural',我可以换成“应该”来让你高兴,但两者混合在一起会让人很困惑。@Rottingham我不这么认为。我宁愿将数据发布到someUri?id=123,也不愿尝试将id=123作为隐藏表单字段或类似内容插入。您的语法错误是因为您试图不正确地连接字符串。所有字段名=值对都需要更正。
$pid = isset($_GET['pid']) ? 0 : intval($_GET['pid']) //to avoid problems in this case