php - 检测到 mysql 数据库的选项

标签 php html mysql database

我有一个选项选择,其中有 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/

相关文章:

php - 如何使用条件计算第二个表中的外键数量并将其与第一个表中的行一起显示 - PHP - MySQL?

php - Laravel 中未找到类 "App\Http\Controllers\Image"

mysql - substring_index 不采用精确的前缀

javascript - 当我得到 $q 时变量未定义?

PHP通过下拉列表显示来自mysql的用户数据

php - 如何为 PHP 安装 ffmpeg

php - 寻找 PHP 正则表达式或函数来使用 .为了安全起见的电子邮件

html - 单击按钮时出现 "pop-overs"- 如何使用 CSS 定位它?

jquery - 在 iOS 设备上关闭 CSS 菜单

html5和css3视频背景