[英]How to insert record using PHP MySQL?
我創建了數據庫(my_db)和表(人),在其中使用了三個字段:名字,姓氏和年齡。 我在php腳本下運行,它顯示如下錯誤:
(!)注意:未定義的索引:第5行調用堆棧的C:\\ wamp \\ www \\ insert.php中的名字
1 0.0007 369800 {main}().. \\ insert.php:0
(!)注意:未定義的索引:第6行調用堆棧的C:\\ wamp \\ www \\ insert.php中的LastName
1 0.0007 369800 {main}().. \\ insert.php:0
(!)注意:未定義的索引:第7行調用堆棧中C:\\ wamp \\ www \\ insert.php中的年齡
1 0.0007 369800 {main}().. \\ insert.php:0記錄已添加到數據庫
以下是PHP代碼:請PLS幫助我並表示感謝
<html>
<body>
<?php
$first=$_POST ['FirstName'];
$last=$_POST ['LastName'];
$a=$_POST ['Age'];
$user_name = "root";
$password = "";
$database = "my_db";
$server = "127.0.0.1";
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
if ($db_found) {
$SQL = "INSERT INTO persons(FirstName, LastName, Age) VALUES ('$first', '$last', '$a')";
$result = mysql_query($SQL);
mysql_close($db_handle);
print "Records added to the database";
}
else
{
print "Database NOT Found ";
mysql_close($db_handle);
}
?>
AND HTML FORM IS BELOW:
<html>
<body>
<form action="insert.php" mehtod="POST">
First Name: <input type="text" name="FirstName">
<br />
Last Name:<input type="text" name="LastName">
<br />
Age:<input type="text" name="Age">
<br />
<input type="submit" value="ADD" />
</form>
</body>
</html>
您很有可能未設置$_POST
變量。
試試...
var_dump($_POST);
...代替...
$first=$_POST['FirstName'];
$last=$_POST['LastName'];
$a=$_POST['Age'];
...進行調試,如果您要查找的值存儲在其中(請也除去$_POST
和標識符之間的空間!)。
這不是您的問題,但是如果您要INSERT
這些變量而不先對其進行清理,那么將為SQL注入打開任何可能性。 適當地消毒它們以應對這種風險。
您已在其中使用Mehtod
<Form mehtod="post">
代替
<Form method="post">
您確定要使用POST而不是GET提交表單嗎?
嘗試添加轉儲以查看得到的內容
<?php
var_dump($_POST);
var_dump($_GET);
//Anyway you can use $_REQUEST instead of $_POST or $_GET
$first= $_REQUEST['FirstName'];
$last= $_REQUEST['LastName'];
嘗試這個:
if ($db_found) {
$SQL = sprintf("
INSERT INTO persons
(FirstName, LastName, Age)
VALUES ('%s', '%s', '%s')",
mysql_real_escape_string($first),
mysql_real_escape_string($last),
mysql_real_escape_string($a));
$result = mysql_query($SQL);
if( $result == true ){
print "Records added to the database";
}
mysql_close($db_handle);
}
它不起作用的原因是您沒有在任何地方調用$ result,而只是聲明了它。
另外,我將查詢放入sprintf()函數,這意味着更容易查看要傳遞的數據。
另一件事是,您要檢查受影響的行是否大於0,因為這意味着已插入某些內容。
您看到的“錯誤”實際上是通知。 發生這些錯誤是因為您嘗試訪問不存在的數組索引。
當您嘗試從$ _POST中獲取值時,它們不存在,並且會生成通知。
可以關閉這些通知 ,但您不可以。 相反,您應該使用isset或empty檢查輸入是否有效( 並且對它進行良好的清酒 !)。
顯示錯誤的原因很難猜測,因為您還沒有包括用於發布數據的HTML。 但是最有可能的是,您將變量命名錯誤或通過GET(而不是POST)發送了變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.