PDO插入不向数据库表添加记录

时间:2015-02-22 05:47:40

标签: php mysql pdo

由于某种原因,第一个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();

1 个答案:

答案 0 :(得分:0)

在第一个语句中,$e = Y,出错。 Y必须定义为常量,或者必须将其放在引号中。同样'Y'就足够了。

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

echo "$contauthor, $the_SID, $yes_WID, $contpoint";

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