簡體   English   中英

PHP不更新數據庫中的行

[英]PHP not updating rows in Database

我在這里做錯了。 我不知道如何使更新塊工作。 當我點擊“更新”按鈕時,它返回到edit.php,但是

錯誤。 錯誤是:注意:未定義的變量:C:\\ xampp \\ htdocs \\ libSys \\ edit.php中的POST在第45行

注意:未定義變量:C:\\ xampp \\ htdocs \\ libSys \\ edit.php中的POST在第46行

注意:未定義的變量:第48行的C:\\ xampp \\ htdocs \\ libSys \\ edit.php中的id

成功更新

第45、46、48行有

        echo $author = $POST['author']; //line 45
        echo $isbn = $POST['isbn']; //line 46

        $sql = "UPDATE booklist SET Author='$author', Title='title', ISBN = '$isbn' WHERE ID = '$id' ";  //line 48

下面是edit.php的完整代碼:

<?php
include('databaseConnection.php');
?>

<html>
<head>
    <link rel="stylesheet" type="text/css" href="./css/librarySystem.css">
    <title> Edit Book Information </title>
</head>

<div>

<?php
if(isset($_REQUEST['edit']))   //FIRST IF
{

    $id = $_REQUEST['edit'];
    $sql_select = "SELECT * FROM booklist WHERE ID=$id";
    $result=mysql_query($sql_select);

    // collect all the data using mysql_fetch_array and assign to our $variables

    while($row = mysql_fetch_array($result))
    {
        $id = $row['ID'];
        $title = $row['Title'];
        $author= $row['Author'];
        $yearLevel = $row['YearLevel'];
        $isbn = $row['ISBN'];
    }

    //displays form for user to edit book information
    echo "<form method='POST' action='edit.php'>";
        echo "Enter New or Correct Title: <input type='text'  name='title'  value='$title' >  <br />";
        echo "Enter New or Correct Author: <input type='text'   name='author'  value='$author'> <br />";
        echo "Enter New or Correct ISBN: <input type='text'  name='isbn'  value='$isbn' >  <br / >";
        echo "<input type='submit' name='save' value='Update' > <br />";
    echo "</form>";
}    //END 1st IF

else if( isset($_POST['save'] ) )    
{

        echo $title = $_POST['title'];
        echo $author = $POST['author'];
        echo $isbn = $POST['isbn'];

        $sql = "UPDATE booklist SET Author='$author', Title='title', ISBN = '$isbn' WHERE ID = '$id' ";
        $result = mysql_query($sql);
            if($result == true)
            {
                echo "Successfully Updated" ;
            }
                //header('Location: ./booklist.php'); 
}

?>

我該如何糾正更新塊。 當我按“更新”時,它似乎要去if(isset($ _ POST ['save']),但實際上並不會更新該行。請幫助。我被卡住了。我不明白為什么“當我為變量分配了$ _POST ['author']時,彈出“未定義的變量”錯誤...

如有任何幫助或解釋,我將不勝感激。 謝謝。

使用super global變量作為$_POST[]

 echo $author = $_POST['author'];
 echo $isbn = $_POST['isbn'];

在更新到數據庫之前,請使用mysql_real_escape_string

$author=mysql_real_escape_string($author),
$isbn=mysql_real_escape_string($isbn));

 $sql = "UPDATE `booklist` SET Author='".$author."', Title='title', ISBN = '".$isbn."' WHERE ID = $id";

注意

不建議使用mysql改用mysqli OR PDO

更改此行

echo $author = $POST['author'];
 echo $isbn = $POST['isbn'];

echo $author = $_POST['author'];
echo $isbn = $_POST['isbn'];

您有語法錯誤,請使用$ POST而不是$ _POST。

 echo $author = $_POST['author']; //line 45
 echo $isbn = $_POST['isbn']; //line 46

 $sql = "UPDATE booklist SET Author='$author', Title='title', ISBN = '$isbn' WHERE ID = '$id' ";  //line 48

php POST全局變量的語法是$_POST而不是您正在使用的$POST

而且我猜您只從使用$_GET$_POST方法的表單獲取$id 因此,還要檢查這些語法。

代碼中有幾個錯誤。 首先,$ _POST是php中的超全局變量。 超級全球主義者以美元符號和下划線開頭。 您忘記了下划線,這就是未定義的原因。 改寫為:

echo $author = $_POST['author'];
echo $isbn = $_POST['isbn'];

其次,您在引號內使用$ id變量。 將第48行重寫為:

$sql = "UPDATE booklist SET Author='{$author}', Title='title', ISBN = '{$isbn}' WHERE ID = '{$id}' "; //line 48

要在不連接的情況下使用引號內的變量,可以使用'{'括號。 不過請記住,常量值不能做相同的事情。 希望這可以幫助 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM