PHP无法写入MySQL数据库

时间:2013-12-12 18:04:20

标签: php mysql

我已经多次查看我的代码并添加了任何缺少的括号或分号但仍然每当我将此代码上传到我的网站并加载页面时我仍然会得到一个完全空白的屏幕。这段代码来自一本O'Reilly的书,所以如果书中有任何报道的错误,我就去检查网站,但没有发现与这个特定的例子有关。

我觉得这不是权限问题,因为我认为该页面至少会报告我编码到其中的一个错误。它可能与我使用的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]);
    }



    ?>      

3 个答案:

答案 0 :(得分:1)

如果没有显示错误,请将以下内容添加到文件顶部,以便显示错误:

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

答案 1 :(得分:1)

您在删除语句中有错误,请尝试以下代码:

 <?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]);
    }



    ?>    

答案 2 :(得分:0)

请确保您显示错误。

ini_set("display_errors", "1");

您还可以使用

创建新页面
phpinfo();

检查PHP是否正在运行(以及您拥有的PHP配置)。