Php PDO insert未将记录添加到数据库表

Php PDO insert未将记录添加到数据库表,php,mysql,pdo,Php,Mysql,Pdo,出于某种原因,第一个SQL可以工作(更新),但第二个INSERT部分什么也不做,也没有将任何内容放入我刚刚创建的新点表中。Points表很简单,只包含以下列:ID、SID、WID、PID。知道为什么没有数据填充它/没有插入行吗 if(isset($_POST ['yes'])){ // Get values from form $yes_WID = $_POST['yes']; $yesupdate = "UPDATE writing SET approved = :approved, p

出于某种原因,第一个SQL可以工作(更新),但第二个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();

在第一条语句中,
$e=Y,
中有一个错误
Y
必须定义为常量,否则必须将其加引号。而且
'Y'
就足够了

对于第二条insert语句,我们只能猜测,因为不可能知道
$row
$row2
中的内容。要进一步调试,请在
$stmt9->execute()之前添加此行


检查它是否显示预期值。其中可能有一个未定义,而
points
中的列不允许null

您需要在
$dbh
setAttribute
,在->准备调用之前进行设置。刚刚尝试过。如您所说,将$dbh>setAttribute放在$stm9=$dbh-->准备行之前。仍然有相同的未定义错误。即使我让它去,我猜它不会显示任何错误的代码虽然…我只是更新了我的代码,以显示整个代码块。代码的第一部分有效,但第二部分无效。也许向您展示上面的整个代码块可以帮助您了解我做错了什么?您得到了什么错误?没有错误。代码根本不会添加数据,但计算机认为代码似乎没有任何问题。也许我不能像现在这样背靠背地进行更新和插入?谢谢你的参与,我喜欢你的想法。是的,我确实看到了最后3个值的echo的预期值……但没有看到第一个($contauthor)。它看起来像:,76257,3,但它应该看起来像1,76257,3。至于第一部分中的Y,它一直工作得很好,并且继续以引用Y的方式工作。但我想你对第二部分有所了解。可能第一个未捕获的值阻止了整个记录的插入?有可能吗?你太棒了!当我将第一列设置为允许null时,记录将插入。所以现在我知道我只需要弄清楚如何捕获$contauthor,我就准备好了:)谢谢
echo "$contauthor, $the_SID, $yes_WID, $contpoint";