2013-12-12 187 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配置)。