2014-01-25 3 views
0

Хорошо, вот моя проблема. Я пытаюсь создать сценарий для публикации на своем веб-сайте. Однако этот скрипт не работает; сценарий ниже:Система публикации PHP и MySQL

<?php 
     // Make sure the user is logged in before going any further. 
     if (!isset($_SESSION['user_id'])) { 
     echo '<p class="login">Please <a href="login.php">log in</a> to access this page.</p>'; 
     exit(); 
     } 
     else { 
     echo('<p class="login">You are logged in as ' . $_SESSION['username'] . '. <a href="logout.php">Log out</a>.</p>'); 
     } 

     // Connect to the database 
     $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

     if (isset($_POST['submit'])) { 
     // Grab the profile data from the POST 
     $post1 = mysqli_real_escape_string($dbc, trim($_POST['post1'])); 
     $query = "INSERT INTO ccp2_posts ('post') VALUES ('$post1')"; 

     $error = false; 

     mysqli_close($dbc); 
    ?> 




    <form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
     <legend>Posting</legend> 
      <label for="post">POST:</label> 
      <textarea rows="4" name="post1" id="post" cols="50">Write your post here...</textarea><br /> 
      <input type="submit" value="submit" name="submit" /> 
    </form> 

    </div> 

     <?php 

    include ("include/footer.html"); 

    ?> 

    </body> 
    </html> 

Ничего не найдено в базе данных при отправке формы. Помощь будет потрясающей. Благодарю.

+1

Быстрый совет: используйте 'action =" "' вместо того, чтобы помещать '$ _SERVER ['PHP_SELF']' в действие. Это здорово, если вы используете материал «RewriteRule» для создания «хороших» URL-адресов. –

+0

И 'session_start();' находится ... –

+0

Проверить на наличие ошибок –

ответ

0

У вас могут быть другие проблемы, но ваш SQL-код плохой. Вы не можете использовать одинарные кавычки около 'post'. Вам нужны обратные или нет:

INSERT INTO ccp2_posts(post) VALUES ('$post1') 
1

Вы не выполнили запрос. Все, что вы сделали, открывает соединение, определяет строку запроса и закрывает соединение.

Добавить:

if(msyqli_query($dbc, $query)) { 
    // Successful execution of insert query 
} else { 
    // Log error: mysqli_error($dbc) 
} 

после этой строки:

$query = "INSERT INTO ccp2_posts ('post') VALUES ('$post1')"; 

Update:

редактировали, но должен был оставить ... Как и другие отметили отвечающими вам необходимо либо цитируйте столбец post с помощью обратной ссылки или удалите одну цитату, которую вы в настоящее время имеете. Единственный случай, когда вам нужно использовать backticks для удаления идентификаторов, которые являются одним из MySQL Reserved Words.

Так рабочая версия запроса будет:

$query = "INSERT INTO ccp2_posts (post) VALUES ('$post1')"; 
+0

Хорошо ... вот что. Никто не задает вопрос. Возможно, так я это и сформулировал. Я хочу добавить комментарии к сообщениям.Это код для ** сообщения ** не для ** комментирования **, это часть, в которой мне нужна помощь. – user2544765

0

Вы пропустили

mysqli_query($dbc,$query); 

В коде

$query = "INSERT INTO ccp2_posts ('post') VALUES ('$post1')"; 
mysqli_query($dbc,$query); 
+0

Вы пропустили тот факт, что они используют 'mysqli'. –

+0

@NiettheDarkAbsol это опечатка –

+0

Отсутствующий аргумент ... вы все исправите через минуту, я уверен! –

0

Ваш запрос не совсем верно:

$query = "INSERT INTO `ccp2_posts` (`post`) VALUES ('$post1')"; 

Обратите внимание, что это обратные выходы `, не одиночные кавычки. Это очень важно! Backticks используются для обозначения баз данных, таблиц и имен столбцов, и в частности это означает, что вам не нужно запоминать обширный список каждого зарезервированного слова. Вы можете позвонить в свою колонку `12345 once I caught a fish alive!`, если хотите!

В любом случае, что более важно, вы фактически не выполняете свой запрос!

mysqli_query($dbc,$query); 
0

Вы не отправляете в базу данных, используя, например, функцию mysql_query().

+1

* sidenote: * перестать использовать устаревшие функции 'mysql_ *'. используйте [MySQLi] (http://php.net/manual/en/book.mysqli.php) или [PDO] (http://php.net/manual/en/book.pdo.php). Вот хороший [учебник] (http://j.mp/PoWehJ) для PDO. – Raptor

+0

@ShivanRaptor - это правильно. Подготовленные правила утверждений! –

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