php - 我需要更新连接两个不同表的表。此查询是否合适?

标签 php jquery html mysql database

我有 3 张 table :

  answers         questions      users

  userID         userID        userID
  staffName      question      name
  qID            Qstatus       surname
  answer         timeDataQ     timeData
  customerName   
  timeAnswer

当我回答问题(在表答案中)时,我想将 Qstatus 从 0 更新为 1。我希望通过连接两个表来做到这一点,但是当我回答问题时,Qstatus 应更改为 1 (已回答)但它没有改变。

这是一些 PHP

    if ($_POST) 
{
    $staffName = test_input($_POST['staffName']);  
    $customerName = test_input($_POST['customerName']);
    $answer = test_input($_POST['answer']);
    $qID = test_input($_POST['qID']);

    try 
    {
        $host = '127.0.0.1';
        $dbname = 'webapp';
        $user = 'root';
        $pass = '';
        $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    } 

    catch (PDOException $e) 
    {
        echo "An error occurred saving your details. Please, try again!";
    }

    $sql = "INSERT INTO `answers` (`staffName`, `customerName`, `answer`, `qID`) VALUES (?,?,?,?);";
    $sth = $DBH->prepare($sql);

    $sth->bindParam(1, $staffName, PDO::PARAM_INT);
    $sth->bindParam(2, $customerName, PDO::PARAM_INT);
    $sth->bindParam(3, $answer, PDO::PARAM_INT);
    $sth->bindParam(4, $qID, PDO::PARAM_INT);

    $sth->execute();

    $Ssql = "UPDATE questions SET questions.Qstatus=1 WHERE answers.qID=questions.userID FROM questions INNER JOIN answers ON answers.userID=questions.userID;"
    $Ssth = $DBH->prepare($Ssql);
    $Ssth->execute();
}

有什么想法吗?非常感谢所有帮助!谢谢!

最佳答案

将最后 3 个 SQL 行更改为:

$Ssql = "UPDATE questions SET Qstatus=1 WHERE qID = ?";
$Ssth = $DBH->prepare($Ssql);
$Ssth->bindParam(1, $qID, PDO::PARAM_INT);
$Ssth->execute();

关于php - 我需要更新连接两个不同表的表。此查询是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34581928/

相关文章:

php - PHP 中的多个结果集?

php - 登录后无法查看页面

jquery - 在当前集合中添加下一个项目和下一个项目之后的项目

javascript - window.parent.location.href 不适用于 mac os 上的 safari

Jquery Load() 内容到对话框()

php - 需要有关连接三个查询以进行订购的帮助

html - 表格的滚动条将文本推到左边?

php - 获取两列中具有相同值的行数据

phpass 的自定义 base 64 编码器 : does it have a name/advantage over Base64?

html - 在 SetEnvIf 中添加多个条件