简体   繁体   English

从PHP中的另一个表(查询1)插入数据库表(查询2)

[英]Insert into db table (query 2) from another table (query 1) in php

Hi I have a drop down list that has values from one db table and I want on button click to save the row of the specific id in another table I have this form 嗨,我有一个下拉列表,其中包含一个db表中的值,我想单击按钮以将特定ID的行保存在另一张表中,我具有这种形式

<table class="table table-bordered table-responsive">
    <tr>
    <td><label class="control-label">Drop down list</label></td>
    <td class="col-xs-4">
        <?php
            $stmt01 = $DB_con->prepare('SELECT * FROM dbtable WHERE chart in (458,459,461) ORDER BY id ASC');
            $stmt01->execute();
            if($stmt01->rowCount() > 0)
            {
            ?>
                <select class="form-control" name="value01">
                    <?php
                        while($row=$stmt01->fetch(PDO::FETCH_ASSOC))
                        {
                            extract($row);
                            echo '<option value="'.$row['id'].'">'.$row['id'].' '.$row['lastName'].' '.$row['firstName'].'</option>';
                        }
                    ?>
                </select>
            <?php
            }
            ?>
        </td>
        <td colspan="2" align="right" class="col-md-2"><button type="submit" name="btnsave01" class="btn btn-default">
            <span class="glyphicon glyphicon-save"></span> &nbsp; Insert
            </button>
        </td>
    </tr>

And my php is 而我的PHP是

require_once 'dbconfig.php';
if (isset($_POST['btnsave01']))
{
    if (isset($_POST['value01']))
    {
        $chart = $_GET['chart'];
        $chartDescription = $_GET['chartDescription'];
        $lastName = $_GET['lastName'];
        $firstName = $_GET['firstName'];
        $location = $_GET['location'];
        $empPic = $_GET['empPic'];

        $q01 = $DB_con->prepare('INSERT INTO results01(chart,chartDescription,regNo,lastName,firstName,location,empPic) VALUES(:uchart, :uchartDescription, :uregNo, :ulastName, :ufirstName, :ulocation, uempPic)');
        $q01->bindParam(':uchart',$chart);
        $q01->bindParam(':uchartDescription',$chartDescription);
        $q01->bindParam(':uregNo',$regNo);
        $q01->bindParam(':ulastName',$lastName);
        $q01->bindParam(':ufirstName',$firstName);
        $q01->bindParam(':ulocation',$location);
        $q01->bindParam(':uempPic',$empPic);
    }
}

Can you help me fix this? 你能帮我解决这个问题吗? The button is working fine but the value is not stored inside db table 该按钮工作正常,但该值未存储在数据库表中

Thank you 谢谢

2 corrections in your PHP PHP 2个更正

  1. Missing : in VALUES of INSERT query. 缺少:INSERT查询的VALUES中。 Replace uempPic with :uempPic . 更换uempPic:uempPic

  2. INSERT query is not executed. INSERT查询未执行。 Add below line after last bindParam statement. 在最后一个bindParam语句之后添加以下行。

     $q01->execute(); 

此行错误,请检查一下...

 $q01 = $DB_con->prepare('INSERT INTO results01(chart,chartDescription,regNo,lastName,firstName,location,empPic) VALUES(:uchart, :uchartDescription, :uregNo, :ulastName, :ufirstName, :ulocation, :uempPic)');

Please have a look on your prepare statement: 请查看您的准备声明:

$q01 = $DB_con->prepare('INSERT INTO results01(chart,chartDescription,regNo,lastName,firstName,location,empPic) VALUES(:uchart, :uchartDescription, :uregNo, :ulastName, :ufirstName, :ulocation, uempPic)'); $ q01 = $ DB_con-> prepare('INSERT INTO results01(chart,chartDescription,regNo,lastName,firstName,location,empPic)VALUES(:uchart,:uchartDescription,:uregNo,:ulastName,:ufirstName,:ulocation,uempPic) ');

You have forgot to add ":" with "uempPic", Please use below statement. 您忘了在“ uempPic”中添加“:”,请使用以下语句。

$q01 = $DB_con->prepare('INSERT INTO results01(chart,chartDescription,regNo,lastName,firstName,location,empPic) VALUES(:uchart, :uchartDescription, :uregNo, :ulastName, :ufirstName, :ulocation, :uempPic)'); $ q01 = $ DB_con-> prepare('INSERT INTO results01(chart,chartDescription,regNo,lastName,firstName,location,empPic)VALUES(:uchart,:uchartDescription,:uregNo,:ulastName,:ufirstName,:ulocation,:uempPic )');

You have not included execute statement. 您尚未包括execute语句。 Add below statement after bindParam. 在bindParam之后添加以下语句。

$q01->execute(); $ q01-> execute();

I think your insert issue will get resolved. 我认为您的插入问题将得到解决。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM