2013-12-12 188 views
0

我已經完成了許多次許多次我的代碼並添加了任何缺失的括號或分號,但是每當我將這段代碼上傳到我的網站並加載頁面時,我仍然得到一個完全空白的屏幕。代碼來自O'Reilly的書,所以我去檢查網站,如果書中有任何報道的錯誤,但沒有發現與這個特定例子相關的內容。PHP無法寫入MySQL數據庫

我不覺得這是一個權限問題,因爲我認爲該頁面至少會報告我編寫的錯誤之一。它可能與我使用的PHP或MySQL版本有關嗎?我能夠連接到過去的數據庫並進行查詢,但只是寫不出來。在這一點上我完全喪失了信心。所有我想做的事就是寫我的MySQL數據庫和黨:(

這裏是代碼:

<?php 
    require_once 'login.php'; 

    // Create connection 
    $db_server = mysql_connect($db_hostname, $db_username, $db_password); 

    // Check connection 
    if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); 

    mysql_select_db($db_database, $db_server) 
     or die("Unable to select database: " . mysql_error()); 

    if (isset($_POST['delete']) && isset($_POST['avail'])) 
    { 
     $avail = get_post('avail'); 
     $query = DELETE FROM test WHERE avail='$avail'; 

     if (!mysql_query($query, $db_server)) 
      echo "DELETE failed: $query<br />" . 
      mysql_error() . "<br /><br />"; 
    }  

    if (isset($_POST['id']) && 
     isset($_POST['item_name']) && 
     isset($_POST['avail'])) 
    { 
     $id   = get_post('id'); 
     $item_name = get_post('item_name'); 
     $avail  = get_post('avail'); 

    $query = "INSERT INTO test VALUES" . 
      "('$id','$item_name','$avail')"; 

    if (!mysql_query($query, $db_server)) 
     {echo "INSERT failed: $query<br />" . 
     mysql_error() . "<br /><br />"; 
    } 
    } 

    ?> 
    <form action="index.php" method="post"><pre> 
     Line Number   <input type="text" name="id" /> 
     Product Name  <input type="text" name="item_name" /> 
     Quantity Available <input type="text" name="avail" /> 
     <input type="submit" value="ADD RECORD" /> 
    </pre></form> 
    <?php 


    $query = "SELECT * FROM test"; 
    $result = mysql_query($query); 

    if (!$result) die ("Database access failed: " . mysql_error()); 
    $rows = mysql_num_rows($result); 

    for ($j = 0 ; $j < $rows ; ++$j) 
    { 
     $row = mysql_fetch_row($result); 
     ?> 
    <pre> 
     Line Number $row[0] 
     Product Name $row[1] 
     Quantity Available $row[2] 
    </pre> 
    <form action="index.php" method="post"> 
    <input type="hidden" name="delete" value="yes" /> 
    <input type="hidden" name="avail" value="$row[2]" /> 
    <input type="submit" name="DELETE RECORD" /></form> 
    <?php 
    } 

    mysql_close($db_server); 

    function get_post($var) 
    { 
     return mysql_real_escape_string($_POST[$var]); 
    } 



    ?>  
+0

你有** ** PHP安裝在你的服務器? – Leonardo

+2

你有沒有看到任何錯誤? –

+0

由$ db_username設計的ftp用戶是否具有INSERT權限? –

回答

1

你在刪除statment錯誤,試試這個代碼:

<?php 
    require_once 'login.php'; 

    // Create connection 
    $db_server = mysql_connect($db_hostname, $db_username, $db_password); 

    // Check connection 
    if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); 

    mysql_select_db($db_database, $db_server) 
     or die("Unable to select database: " . mysql_error()); 

    if (isset($_POST['delete']) && isset($_POST['avail'])) 
    { 
     $avail = get_post('avail'); 
     $query = "DELETE FROM test WHERE avail='$avail'"; 

     if (!mysql_query($query, $db_server)) 
      echo "DELETE failed: $query<br />" . 
      mysql_error() . "<br /><br />"; 
    }  

    if (isset($_POST['id']) && 
     isset($_POST['item_name']) && 
     isset($_POST['avail'])) 
    { 
     $id   = get_post('id'); 
     $item_name = get_post('item_name'); 
     $avail  = get_post('avail'); 

    $query = "INSERT INTO test VALUES" . 
      "('$id','$item_name','$avail')"; 

    if (!mysql_query($query, $db_server)) 
     {echo "INSERT failed: $query<br />" . 
     mysql_error() . "<br /><br />"; 
    } 
    } 

    ?> 
    <form action="index.php" method="post"><pre> 
     Line Number   <input type="text" name="id" /> 
     Product Name  <input type="text" name="item_name" /> 
     Quantity Available <input type="text" name="avail" /> 
     <input type="submit" value="ADD RECORD" /> 
    </pre></form> 
    <?php 


    $query = "SELECT * FROM test"; 
    $result = mysql_query($query); 

    if (!$result) die ("Database access failed: " . mysql_error()); 
    $rows = mysql_num_rows($result); 

    for ($j = 0 ; $j < $rows ; ++$j) 
    { 
     $row = mysql_fetch_row($result); 
     ?> 
    <pre> 
     Line Number $row[0] 
     Product Name $row[1] 
     Quantity Available $row[2] 
    </pre> 
    <form action="index.php" method="post"> 
    <input type="hidden" name="delete" value="yes" /> 
    <input type="hidden" name="avail" value="$row[2]" /> 
    <input type="submit" name="DELETE RECORD" /></form> 
    <?php 
    } 

    mysql_close($db_server); 

    function get_post($var) 
    { 
     return mysql_real_escape_string($_POST[$var]); 
    } 



    ?>  
+0

這裏來的尷尬... 謝謝了! – Meehee

1

如果正在顯示沒有錯誤以下內容添加到您的文件的頂部,它將使對於要顯示的錯誤:

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
0

請確保您顯示錯誤

ini_set("display_errors", "1"); 

。您還可以創建一個新的頁面,只是

phpinfo(); 

檢查PHP運行(和你有什麼PHP配置)。