我有一个选项选择,其中有 3 个选项(打开、关闭和忙碌)。 现在我想将我选择的选项发送到我的 Mysql 数据库。 我得到了这个代码。
这是我的函数
function editStatus($pStatus, $id){
$id= (int) $id;
$query = mysql_query("UPDATE posts SET status = '$pStatus' WHERE id = '$id' ") or die (mysql_error());
}
这里我调用我的函数
if (isset($_POST['submit'])) {
if(isset($_POST['postcats'])) {
editStatus($_POST['postcats'] , $_POST['$id']);
header('location: posts.php');
}else{
echo "Please set a post name";
include('addpost.php');
}
}else{
header('location: addpost.php');
}
这是我的表格
** <tr>
<TD><label for="postcats">Status</label></TD>
<td><select name="postcats">
<option name="Open" value="Open">Open</option>
<option name="Busy" value="Busy">Busy</option>
<option name="Closed" value="Closed">Closed</option>
</select></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" /></td><td><input type="hidden" name="id" value="<?php echo$_GET['id'];?>" /></td>
</tr>**
我希望你们知道为什么它不会将其发送到我的数据库..
最佳答案
您正在调用 editPost
函数而不是 editStatus
注释
添加
error_reporting(E_ALL);
和ini_set('display_errors', 1);
以捕获错误。在
< 之后添加header("Location: ...");
die;
或exit;
/里>您很容易受到 SQL 注入(inject)攻击,因为没有转义
$pStatus
。mysql_* 函数已弃用。请改用 mysqli 或 PDO。
关于php - 检测到 mysql 数据库的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27400699/