我試圖做一個令人難以置信的基本形式,將名字,姓氏和年齡添加到名爲Test的非常基本的數據庫。這裏是我的HTML代碼:非常簡單的MySQL語法錯誤,我是新來的
<html>
<head>
</head>
<body>
<h1>Welcome!</h1>
<br>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>
<input type="submit">
</form>
</body>
</body>
</html>
,這是我的PHP代碼,與數據庫名,主機和登錄信息隱藏:
<?php
$con=mysqli_connect("HOST","USER","PASS","DB");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql= "INSERT INTO Test ('First Name', 'Last Name', 'Age')
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
這是我的錯誤,當我到的數據類型形成並提交。 ,我進入這個網頁:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''First Name', 'Last Name', 'Age') VALUES ('Robert','Maxwell','18')' at line 1
使用back ticks而不是'''引用您的列名稱。 – Musa 2013-05-01 03:57:28
我懷疑你的字段標題有空格。 – hsuk 2013-05-01 04:02:56
在你做任何事情之前,請閱讀[使用SQL佔位符](http://bobby-tables.com)瞭解如何[避免SQL注入漏洞](http://bobby-tables.com/)/PHP)。你在這裏做的事完全是魯莽的,讓你面對各種嚴峻的問題。 'mysqli'具有[bind_param](http://php.net/manual/en/mysqli-stmt.bind-param.php)方法,可以很容易地正確和安全地執行此操作。 – tadman 2013-05-01 04:14:00