由于某种原因,第一个SQL工作(UPDATE)但第二个INSERT部分什么都不做,并且什么也没有放入我刚创建的新点表中。 Points表很简单,只有以下列:ID,SID,WID,PID。知道为什么没有数据填充它/没有插入行?
if(isset($_POST ['yes'])){
// Get values from form
$yes_WID = $_POST['yes'];
$yesupdate = "UPDATE writing SET approved = :approved, position = :position
WHERE WID = :WID";
$stmt2 = $dbh->prepare($yesupdate);
$stmt2->bindParam(':WID', $yes_WID, PDO::PARAM_INT);
$stmt2->bindParam(':approved', $e = Y, PDO::PARAM_STR);
$stmt2->bindParam(':position', $row2[0]['position'], PDO::PARAM_INT);
$stmt2->execute();
$storyauthor = $row[0]['stories.ID'];
$contpoint = 3;
$contauthor = $row2[0]['writing.ID'];
$yesupdate2 = "INSERT INTO points(ID,
SID,
WID,
PID) VALUES(
:ID,
:SID,
:WID,
:PID)";
$stmt9 = $dbh->prepare($yesupdate2);
$stmt9->bindParam(':ID', $contauthor, PDO::PARAM_INT);
$stmt9->bindParam(':SID', $the_SID, PDO::PARAM_INT);
$stmt9->bindParam(':WID', $yes_WID, PDO::PARAM_INT);
$stmt9->bindParam(':PID', $contpoint, PDO::PARAM_INT);
$stmt9->execute();
答案 0 :(得分:0)
在第一个语句中,$e = Y,
出错。 Y
必须定义为常量,或者必须将其放在引号中。同样'Y'
就足够了。
对于第二个插入语句,我们只能猜测,因为无法知道$row
和$row2
中的内容。要进一步调试,请在$stmt9->execute();
之前添加此行:
echo "$contauthor, $the_SID, $yes_WID, $contpoint";
检查是否显示预期值。可能其中一个未定义,而points
中的列不允许null。