[英]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.