好吧,首先,我是PHP和MySQL的新手,所以我很抱歉如果我要去問一些愚蠢的問題: 我想創建的頁面有4個表單和一個提交按鈕,我想將所有這些信息發送到數據庫,當我點擊提交,但我有這些錯誤:我爲測試做了一個簡單的表單(我試圖教自己一些MySQL/PHP)PHP/MySQL錯誤
Notice: Undefined index: submit in C:\XAMPP\htdocs\SQLtesting\index.php on line 37
Notice: Undefined variable: sql in C:\XAMPP\htdocs\SQLtesting\index.php on line 45
Warning: mysqli_query(): Empty query in C:\XAMPP\htdocs\SQLtesting\index.php on line 45
下面是代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="abcde" />
<title>Untitled 2</title>
</head>
<body>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="User">
First Name:
<input type="text" name="firstName" /> <br />
Last Name:
<input type="text" name="lastName" /> <br />
E-mail:
<input type="text" name="email" /> <br />
Phone Number:
<input type="text" name="phoneNumber" /> <br />
<input type="submit" name="submit" />
</form>
<?php
$con=mysqli_connect("localhost","root",'',"test_1");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if(isset($_POST['submit'])){
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
$email = $_POST['email'];
$phoneNumber = $_POST['phoneNumber'];
}
if($_POST['submit'])
{
$sql="INSERT INTO test_1_1(id,firstName, lastName, email, phoneNumber)
VALUES
('','$_POST[firstName]','$_POST[lastName]','$_POST[email]', '$_POST[phoneNumber]')";
echo "1 record added";
}
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
?>
</body>
</html>
我也注意到,如果我寫的
$sql="INSERT INTO test_1_1(id,firstName, lastName, email, phoneNumber)
VALUES
('','$_POST[firstName]','$_POST[lastName]','$_POST[email]', '$_POST[phoneNumber]')";
根本沒有,如果有條件我不會得到
Warning: mysqli_query(): Empty query in C:\XAMPP\htdocs\SQLtesting\index.php on line 45
錯誤,但代碼將在開始添加一個空行。
我正在使用XAMPP在本地計算機上運行此操作。
不要*在你的SQL查詢中直接使用'$ _POST'。如果我決定我的名字是''); DROP TABLE test_1_1; --'?我建議你閱讀這個:http://php.net/manual/en/mysqli.quickstart.prepared-statements.php或http://php.net/manual/en/mysqli.prepare.php –
如果你只定義IF中的變量($ sql),任何使用該變量的變量都應該在IF內。僅此一項將解決第二和第三錯誤。 (並且這些是第一個要解決的問題 - 如果你現在修復第一個錯誤,它就會隱藏其他錯誤) – OGHaza
非常感謝,我們將嘗試這兩個想法 – user2997092