在执行各种插入时获取未定义的变量php

时间:2013-10-27 20:30:12

标签: php mysql mysqli

我正在插入以下表格中的信息:

<form method="post" role="form">
                            <div id="solutionTitleValidation" class="form-group">
                                <label class="control-label" for="solutionTitle">Título de la Solución</label>
                                <input type="text" class="form-control" name="solutionTitle" id="solutionTitle" autocomplete="off" aria-autocomplete="none" placeholder="título">
                            </div>
                            <div id="solutionTagsValidation" class="form-group">
                                <label class="control-label" for="solutionTags">Tags de la Solución</label>
                                <input type="text" class="form-control" name="solutionTags" id="solutionTags" autocomplete="off" aria-autocomplete="none" placeholder="tags de la solución">
                                <p class="help-block"><strong>Nota: </strong>Las tags no pueden llevar espacios, es solamente una palabra, y se separan por comas. Ej.: renweb, internet, conexión, etc. <strong>Se recomienda al menos 4</strong> por solución para mayor efectividad a la hora de búsqueda, y un máximo de 6.</p>
                            </div>
                            <div id="solutionDescriptionValidation" class="form-group">
                                <label class="control-label" for="solutionDescription">Descripción de la Solución</label>
                                <textarea maxlength="140" class="form-control" name="solutionDescription" id="solutionDescription" placeholder="descripción" rows="4" style="resize: none;"></textarea>
                                <p class="help-block"><strong>Nota: </strong>La descripción no puede ser mayor a 140 carácteres.</p>
                            </div>
                            <div class="form-group">
                                <label class="control-label" for="solutionBody">Contenido de la Solución</label>
                                <textarea class="form-control" name="solutionBody" id="solutionBody" placeholder="contenido de la solución" rows="10" style="resize: none;"></textarea>
                                <p class="help-block"><strong>Nota: </strong>Para subir imágenes, deberán ser subidas primero a otro servidor. Puede utilizar <a href="http://imageshack.us/">Image Shack</a> como servidor de fotos. Luego hacer click en el botón de insertar imagen.</p>
                            </div>
                            <hr>
                            <a href="index.php" class="btn btn-default pull-left">Menú Principal</a>
                            <button type="submit" name="solutionEnter" class="btn btn-success pull-right">Ingresar Solución</button>
                            <div class="clearfix"></div>
                        </form>

进入mysql数据库。我在一个名为functions.php的php文件上打开了我的连接字符串,我使用require_once'functions.php'将它包含在这个文件中;

我正在使用的PHP代码如下:

if(isset($_POST['solutionEnter'])){
    if(empty($_POST['solutionTitle']) || empty($_POST['solutionTags']) || empty($_POST['solutionDescription']) || empty($_POST['solutionBody'])){
        $errorMessage  = '<div class="alert alert-danger alert-dismissable">';
        $errorMessage .= '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
        $errorMessage .= '<strong>Error!</strong> Uno o más de los campos solicitados en el formulario se dejó vacío. Por favor llene la información que se le solicita.</div>';
    }   
else {
        $title = $_POST['solutionTitle']; $tags = array_map('trim', explode(',',$_POST['solutionTags']));
        $description = $_POST['solutionDescription']; $content = $_POST['solutionBody'];

        //query para insertar los datos dentro en la base de datos
        //generamos un valor unico y lo asignamos a una variable
        $uniqueID = "SELECT UUID() as UID";
        $getUniqueID = $DBConnect->query($uniqueID);
        $result = $getUniqueID->fetch_assoc();
        //Ejectura el query e insertar el UUID generado
        $insertSolutionQuery        = sprintf("INSERT INTO solution VALUES('%s', '%s', '%s', '%s')", $result['UID'], $title, $description, $content);
        $DBConnect->query($insertSolutionQuery);
        echo $insertSolutionQuery;
        $insertTagIntermediateQuery = sprintf("INSERT INTO solution_tags_intermediate VALUES('%s')", $result['UID']);
        $DBConnect->query($insertTagIntermediateQuery);
        echo $insertTagIntermediateQuery;
        foreach($tags as $tag){
            $insertTagsQuery = sprintf("INSERT INTO solution_tags values('%s')", $tag);
            $DBconnect->query($insertTagsQuery);
            echo $insertTagsQuery;
        }
    }
}

在将数据插入数据库之前,我确认没有任何内容为空。

稍后我将$ _POST []的值分配给我可以轻松操作的变量。

之后,我开始插入查询。

问题是只有查询号($ insertSolutionQuery)执行插入,查询号2($ insertTagIntermediateQuery)没有,查询号3($ insertTagsQuery)也没有。

此外,查询号3会显示一条PHP错误,其中包含以下内容:

=&gt;未定义的变量:第33行的C:\ wamp \ www \ helpdesk \ admin \ newSolution.php中的DBconnect

=&gt;致命错误:在第33行的C:\ wamp \ www \ helpdesk \ admin \ newSolution.php中的非对象上调用成员函数query()

第33行是:

$DBconnect->query($insertTagsQuery);

知道我可能做错什么吗?另外,为什么我会收到此错误? $ DBconnect变量位于functions.php文件中。说实话不应该是不确定的。

0 个答案:

没有答案