2016-08-09 3 views
0

Я здесь со «странной» проблемой.Запрос Mysqli не выполняется

Вот как я создаю новую тему. Если sesson не установлен, вернитесь к index.php, или если он установлен, он подключается к db, получает информацию из формы и помещает их в db. Тогда, если все в порядке, обратитесь к index.php. Это нормально работает:

<?php 
    session_start(); 

    if(!isset($_SESSION['username'])){ 
     header("location: index.php"); 
    } 

    if(isset($_POST["submit"])){ 

     include ('../modules/dbconnect.php'); 

     $uname = $_SESSION['username']; 
     $utitle = $_POST["title"]; 
     $utext = $_POST["myTextArea"]; 

     $query = mysqli_query($conn, "INSERT INTO topic (author, title, text) VALUES ('$uname', '$utitle','$utext')"); 

     if($query){header("Location: ../index.php");} 

     $conn->close(); 
    } 
?> 

<form class="registration_form" action="" method="post"> 
    <label>Titolo</label> 
    <input type="text" name="title" class="input"> 
    <label>Testo</label> 
    <textarea name="myTextArea"></textarea> 
    <input class="button" type="submit" name="submit" value="submit"> 
</form> 

И это моя проблема. Я использовал ту же самую структуру, чтобы вставить пост после того, как я вхожу в тему, но я не знаю, почему это не работает, и я не могу понять, в чем проблема:

<?php 
     if(isset($_POST["submit"])){ 

     include('modules/dbconnect.php'); 

     $id = $_GET['id']; 
     $uname = $_SESSION['username']; 
     $utext = $_POST["myText"]; 

     $query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id, '$uname', '$utext')"); 

     if($query){header("Location: ../index.php");} 

     $conn->close(); 
    } 
?> 

<form class="reply_form" action="" method="post"> 
    <label>Testo</label> 
    <textarea name="myText"></textarea> 
    <input class="button" type="submit" name="submit" value="submit"> 
</form> 
+0

print $ conn, и проверка DB подключена или нет. –

+0

* «не работает» * ... это помогает, если вы предоставляете больше информации о том, что на самом деле не работает, или что происходит. – BadHorsie

+0

'echo $ query;' и что вы получаете? – user5173426

ответ

1
VALUES ('$id, '$uname', '$utext') 

-> Отсутствует 'после $ id ???

1

В первом фрагменте рабочего кода включают ('../modules/dbconnect.php');

и ниже вы использовали include ('modules/dbconnect.php');

так что, возможно, у вас нет объекта связи из-за проблемы с файловым каналом. пожалуйста, проверьте с ним , и если какая-либо ошибка вы видели, чем после ошибки здесь

+0

Да, потому что эти два php-файла создаются в 2 разных каталогах. – An00bi

+0

Если еще не сделано, просто установите error_reporting (E_ALL). было бы полезно проследить точная ошибка. и да, вместо $ utext = $ _POST ["myText"]; предпочитают использовать $ utext = addslashes ($ _ POST ["myText"]); –

0

Изменить это:

$query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id, '$uname', '$utext')"); 

Для этого:

$query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id', '$uname', '$utext')"); 

Также проверка правильного пути include('modules/dbconnect.php'); как вы сначала использовали два разных пути: include('../modules/dbconnect.php');, а другой следующий.

' Отсутствует на ('$id,

0

Вы используете InnoDB в качестве движка хранения? Если да, возможно, вы забыли либо установить mysqli_autocommit на значение true, либо позвонить по номеру mysqli_commit после вашего запроса.

Смежные вопросы