我有 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/