Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在同一页上为不同的表插入和选择语句_Php_Mysql_Sql_Pdo - Fatal编程技术网

Php 在同一页上为不同的表插入和选择语句

Php 在同一页上为不同的表插入和选择语句,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我正在写一本啤酒杂志。当我想创建一个新的日记账条目时,我会在日记账表中插入一行,其中包含我正在品尝的啤酒的ID。啤酒存放在一张单独的桌子上。将行插入日记账表后,我想从beerData表中选择啤酒,以便在用户完成输入时向用户显示啤酒。我的插入正确,但我没有得到任何关于啤酒名称的回复。我尝试了两种不同的方法,但都不奏效 <?php if (isset( $_POST['newJournalEntry'] )) { //Define POST Variables $beer

我正在写一本啤酒杂志。当我想创建一个新的日记账条目时,我会在日记账表中插入一行,其中包含我正在品尝的啤酒的ID。啤酒存放在一张单独的桌子上。将行插入日记账表后,我想从beerData表中选择啤酒,以便在用户完成输入时向用户显示啤酒。我的插入正确,但我没有得到任何关于啤酒名称的回复。我尝试了两种不同的方法,但都不奏效

<?php 

if (isset( $_POST['newJournalEntry'] )) {

    //Define POST Variables
    $beerID = $_POST['id'];

    //Create Record in Beer Journal
    //SQL Query
    $query = "INSERT INTO journal (beerID)
                    VALUES (:beerID);
              SELECT beer FROM beerData 
                    WHERE id = :beerID;";

    //Prepare Query, Bind Parameters, Excute Query
    $STH = $DBH->prepare($query);
    $STH->bindParam(':beerID', $beerID);
    $STH->execute();

    $journal_id = $DBH->lastInsertId();


    while($row = $STH->fetch(PDO::FETCH_ASSOC)){
        echo $row['beer'];
        }

    } else {
echo "Test";
}
?>
第二次尝试:

<?php 

if (isset( $_POST['newJournalEntry'] )) {

    //Define POST Variables
    $beerID = $_POST['id'];

    //Create Record in Beer Journal
    //SQL Query
    $query = "INSERT INTO journal (beerID)
                    VALUES (:beerID)";

    //Prepare Query, Bind Parameters, Execute Query
    $STH = $DBH->prepare($query);
    $STH->bindParam(':beerID', $beerID);
    $STH->execute();

    $journal_id = $DBH->lastInsertId();

    //SQL Query
    $query2 = "SELECT beer FROM beerData WHERE id = :beerID";

    //Prepare Query, Bind Parameters, Execute Query
    $STH2 = $DBH->prepare($query2);
    $STH2->bindParam(':beerID', $beerID);
    $STH2->execute();

    while($row = $STH2->fetch(PDO::FETCH_ASSOC)){
        echo $row['beer'];
        }

    } else {
echo "ELSE!!!";
}   
?>

问题1:为什么不在两个查询中进行设置?我在第二个示例中进行了设置。是否使用您期望的id值正确设置了$beerID?对于$journal_idYeah,同样的问题。我没有得到任何实际的错误。select查询的结果没有回显。请尝试在bindParam之前打印$beerID,查看它是否仍保留有效ID