将查询结果存储在变量中

时间:2013-03-19 14:15:10

标签: php variables

我有一个表格,人们可以订阅或取消订阅时事通讯(这是有效的)。问题是,当我想将数据插入数据库时​​,我遇到了问题。表格本身是这样的:

<form action="subscriptionsedit2.php?CusID=&lt;?=$_GET[">
    " name="frmEdit" method="post"&gt; <?php  
    $objConnect = mysql_connect("localhost","root","root") or  die(mysql_error());  
    $objDB = mysql_select_db("NAW");  
    $strSQL1 = "SELECT ID, Titel FROM Mail";
    $strSQL = "SELECT * FROM Klant WHERE ID =  '".$_GET["ID"]."' "; 
    $objQuery = mysql_query($strSQL);  
    $objQuery1 = mysql_query($strSQL1); 
    $objResult = mysql_fetch_array($objQuery);
    if(!$objResult)  
    {  
    echo "Not found ID=".$_GET["ID"];  
    }  
    else  
    {  
    ?>

    <fieldset>
        <legend>Wijzig</legend>

        <table width="600" border="1">
            <tr>
                <th width="91">
                    <div align="center">
                        ID
                    </div>
                </th>
            </tr>

            <tr>
                <td>
                    <div align="center">
                        <?=$objResult["ID"];?>
                        </div>
                </td>
            </tr>
        </table><br>

        <table width="600" border="1">
            <tr>
                <th width="91">
                    <div align="center">
                        ID
                    </div>
                </th>

                <th width="91">
                    <div align="center">
                        Subscribe
                    </div>
                </th>

                <th width="91">
                    <div align="center">
                        Unsubscribe
                    </div>
                </th>
            </tr><?php 
            $i = 0;  
            while($objResult1 = mysql_fetch_array($objQuery1))  
            {  
            $i++;  
            ?>

            <tr>
                <td>
                    <div align="center">
                        <?=$objResult1["ID"];?>
                        </div>
                </td>

                <td>
                    <div align="center">
                        <input type="checkbox" name="sub" value="10">
                    </div>
                </td>

                <td>
                    <div align="center">
                        <input type="checkbox" name="sub" value="90">
                    </div>
                </td>
            </tr><?php  
            }  
            ?>
        </table>
    </fieldset><!-- content --><input type="submit" name="submit" value="Submit"> <input type="button" name="cancel" value="Cancel" onclick="window.location='klanten.php'"> <?php  
    }  
    mysql_close($objConnect); 
    ?>
</form> 

在subscriptionsedit2.php上数据将被插入数据库中,如下所示:

mysql_connect('localhost','root','root');
mysql_select_db('NAW') or die (mysql_error());

$Klant_ID = $objResult["ID"];
$Mail_ID = $objResult1["ID"];
$Status = $_POST['sub'];
$Datum = date("d-m-y");

$sql = mysql_query("INSERT INTO Subscriptions (Klant_ID, Mail_ID, Status, Datum) VALUES ('".$Klant_ID."', '".$Mail_ID."', '".$Status."', '".$Datum."')") or die (mysql_error());

这是我得到的错误:注意:未定义的变量:第16行的/var/www/Mail/subscriptionsedit2.php中的objResult注意:未定义的变量:第17行的/var/www/Mail/subscriptionsedit2.php中的objResult1

正如您所看到的,变量$ Klant_ID和$ Mail_ID中没有任何值。所以我的问题是如何正确地将Klant_ID(<?=$objResult["ID"];?>)和Mail_ID(<?=$objResult1["ID"];?>)存储到变量中?我希望这个问题很清楚,但如果你对此有任何疑问,请发表评论^^。如果有人知道如何做到这一点就会很棒!

2 个答案:

答案 0 :(得分:1)

BTW mysql,mysqli或PDO,提交表单时$objResult["ID"]不存在!

必须使用post var传输您的表单。

在提交表单时,您必须执行以下操作来传输您的变量:

<input type"text" name="objResult" value="<?php echo $objResult["ID"]; ?>" />

然后您可以使用subscriptionsedit2.php

$_POST['objResult']中访问它

修改

如果您不想显示它,请隐藏此输入:

<input type"hidden" name="objResult" value="<?php echo $objResult["ID"]; ?>" />

答案 1 :(得分:0)

您的应用很容易受到注射攻击。

首先,永远不要,永远不要在SQL语句中使用原始$GET_$POST_值。

其次:使用mysqli_代替mysql_ - mysql_已被弃用并被删除。

第三:如果您必须使用mysql_,请务必使用mysql_real_escape_string

第四:如果要插入数据库中的整数字段,请不要在值周围使用引号。

第五:我不确定你的各种代码片段在哪里相互关联,但是尝试将$Klant_ID$Mail_ID的值转储到日志文件中,这样你就可以确保他们实际拥有其中的价值观。问题可能在代码中更早,而不是在SQL语句区域本身。