2015-10-04 107 views
1

編輯:我不知道該說什麼。這些評論是我現在發佈的問題。我不記得顯示錯誤的事實,這正是對我的幫助。我幾乎只是嘗試了一些顯然不能工作的東西,因爲錯誤地放置了變量等,並顯示錯誤代碼讓我知道哪些變量是錯誤的。感謝您的幫助,現在解決了這個問題!無法插入表單數據到數據庫(MySQLIi)

這麼長的故事,標題。我不知道爲什麼這段代碼拒絕將插入的數據輸入到數據庫中,並且我嘗試了一些沒有得到更好結果的東西。

連接:

<?php 
session_start(); 

$host = 'host'; 
$dbusername = 'username'; 
$dbpassword = 'password'; 

$anslutning = mysqli_connect($host, $dbusername, $dbpassword) or die("<b>Could not connect to database server</b>"); 

$anslutning->select_db('databasename') or die("<b>Could not connect to the specified database</b>"); 

>

形式來抓住從數據:

echo ' 
       <h2><center>Post a topic</center></h2> 
       <br /><br /> 
       <div class="indexform"> 
        <form action="index.php" method="POST"> 
         Title: <input type="text" name="title"> <br /> <br /> 
         Content: <textarea name="content" class="content"> </textarea> 
         <br /> <br /> 
         <input type="submit" name="postTopicOnGeneral"> 
        </form> 
       </div> 
       '; 

PHP代碼,將其插入到數據庫

if(isset($_POST['postTopicOnGeneral'])) { 

       $username = $_POST['username']; 
       $title = $_POST['title']; 
       $content = $_POST['content']; 
       $general = $_POST['general']; 

       $addPostOnGeneral = $anslutning->prepare('INSERT INTO tblPosts(title, content, author, category) VALUES(?, ?, ?, ?)'); 
       $addPostOnGeneral->bind_param("ssss", $title, $content, $username, $general); 
       $addPostOnGeneral->execute(); 

       echo "<center>Post created!</center>"; 
       sleep(2); 
       echo "<script> window.location.href = 'index.php?general=1' </script>"; 

      } 
+0

你收到任何錯誤輸出?如果沒有,嘗試用'error_reporting(E_ALL)'激活php文件頂部的錯誤報告,並再次測試。你收到什麼? –

+0

你有*任何*輸出嗎?啓用'error_reporting',檢查['mysqli :: $ error'](http://stackoverflow.com/questions/22662488/how-to-get-mysqli-error-in-different-environments)。刪除所有用於測試的isset。 – mario

+0

@FabianPicone未定義的索引:用戶名和未定義:一般是我從中得到的。試圖現在擺弄這些問題.. – Xariez

回答

0

嘗試改變

$username = $_POST['username']; 
$title = $_POST['title']; 
$content = $_POST['content']; 
$general = $_POST['general']; 

有了這個:

$username = isset($_POST['username']) ? $_POST['username'] : ''; 
$title = isset($_POST['title']) ? $_POST['title'] : ''; 
$content = isset($_POST['content']) ? $_POST['content'] : ''; 
$general = isset($_POST['general']) ? $_POST['general'] : ''; 
1

未定義指數:用戶名和未定義:一般是我從那個得到。

由於您沒有從表單中的任何位置獲取$username$general,您一定會遇到此錯誤。

更改您的形式是:

echo ' 
    <h2><center>Post a topic</center></h2> 
    <br /><br /> 
    <div class="indexform"> 
    <form action="index.php" method="POST"> 
    Title: <input type="text" name="title"> <br /> <br /> 
    Content: <textarea name="content" class="content"> </textarea> 
    <br /> <br /> 
    <input type="submit" name="postTopicOnGeneral"> 
    </form> 
    </div>'; 

這樣:

echo ' 
    <h2><center>Post a topic</center></h2> 
    <br /><br /> 
    <div class="indexform"> 
    <form action="index.php" method="POST"> 
    Title: <input type="text" name="title"> <br /> <br /> 
    Content: <textarea name="content" class="content"> </textarea> 
    <br /> <br /> 
    Username: 
    <input type="text" name="username"> 
    General: 
    <input type="text" name="general"> 
    <input type="submit" name="postTopicOnGeneral"> 
    </form> 
    </div>'; 

,然後在index.php

if(isset($_POST['postTopicOnGeneral'])) { 
    echo $username = $_POST['username']; 
    echo $title = $_POST['title']; 
    echo $content = $_POST['content']; 
    echo $general = $_POST['general']; 
    // rest of your code