php包括id其他数据库

时间:2014-01-14 17:41:33

标签: php sql database

我有两个数据库(第一个:身份,第二个:订单),我尝试从第一个中获取我的id,在第二个数据库中包含,当第二个数据库中的客户订单时我们可以看到id关联。

我尝试了很多但没什么!

这是我的php:

<?php
session_start();
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['commande']) && $_POST['commande'] == 'commande') {
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
    if ((isset($_POST['homme']) && !empty($_POST['homme'])) && (isset($_POST['quantiteh']) && !empty($_POST['quantiteh']))) {
// on teste les deux mots de passe

        $base = mysql_connect ('localhost', 'acces_site', 'password');
        mysql_select_db ('carole', $base);

        $homme = $_POST['homme'];
        $quantiteh = mysql_real_escape_string($_POST['quantiteh']);
        // $id ='SELECT id, id FROM carole,commande ';
        $id=$_SESSION['id'];



    $sql = 'INSERT INTO commande (id_commande,id,homme,quantiteh) VALUES ("", "$id", "$homme", "$quantiteh")';
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());


}
}
?>

这是我的HTML:

<fieldset id="rows0">
                            <ul>
                                <li>
                                    <br/>
                                    <br/>
                                    <br/>
                                    <form  method="POST" action="#">
                                    <select id="homme" name="homme" class="col-xs-5 col-sm-6 col-lg-6">
                                         <option value="chemise">Chemise</option>
                                         <option value="chemise pliée">Chemise pliée</option>
                                         <option value="veste">Veste</option>
                                         <option value="pantalon">Pantalon</option>
                                         <option value="cravate">Cravate</option>
                                         <option value="pull">Pull, Gilet</option>
                                         <option value="blouson">Blouson</option>
                                         <option value="blouson">Blouson 3/4</option>
                                         <option value="impermable">Imperméable</option>
                                         <option value="manteau">Manteau</option>
                                         <option value="doudoune">Doudoune</option>
                                    </select>
                                    <input type="number" min="1" id="quantiteh" name="quantiteh" placeholder="Quantité" class="col-xs-5 col-sm-4 col-lg-4"/>
                                    <button type ="submit" class="btn btn-primary" name="commande" value="commande">Continuer</button>
                                    </form>
                                </li>
                            </ul>
                        </fieldset>
                        <fieldset id="controls">
                            <button id="addRow0">add</button>
                            <button id="removeRow0" disabled>remove</button>
                        </fieldset>

1 个答案:

答案 0 :(得分:1)

在用单引号括起的字符串中使用时,不会展开变量。

所以这不起作用:

$sql = 'INSERT INTO commande (id_commande,id,homme,quantiteh) VALUES ("", "$id", "$homme", "$quantiteh")';
                                                                           ^^^ no variable here, just the string "$id", etc.

您可以将单引号切换为双引号,将双引号转换为单引号,但是您会遇到SQL注入问题($homme变量)。

您应该切换到PDO或mysqli以及带有绑定变量的预处理语句。

在PDO中,您的查询类似于:

// open PDO database connection
$sql = 'INSERT INTO commande (id,homme,quantiteh) VALUES (:id, :homme, :quantiteh)';
$stmt = $db->prepare($sql);
$stmt->execute(array(':id' => $id, ':homme' => $homme, ':quantiteh' => $quantiteh));