[英]Insert record into MYSQL database with PHP
希望是一个简单的解决方案,但整个周末一直困扰着我。
我有一个简单的脚本连接到我的MYSQL数据库,然后使用HTML表单中的字段在数据库中输入新记录。
该脚本工作正常,但我没有在脚本中定义数据库列,只使用insert into然后引用VALUES作为HTLM表单字段。
工作
mysql_select_db("golfingdb", $con);
mysql_query("INSERT INTO Test1
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[email]')");
mysql_close($con);
不工作
mysql_select_db("golfingdb", $con);
mysql_query("INSERT INTO 'Test1' (First Name, Surname, Email)
VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[email]')");
mysql_close($con);
但是,当我在代码中引用数据库字段名称时,它无法创建新记录。
我已经三次检查了字段名称的拼写(包括大写字母),它没有抛出任何语法错误。
任何帮助将不胜感激。
干杯
稻田
如果名称包含空格,则需要使用反引号括住列名称。
(`First Name`,
也许它是两个字的列名。 在引用列时,您可以使用“名字”或类似名称。
你能发布MySQL给你的确切错误吗?
尝试这个
$firstname=$_POST["firstname"];
$lastname=$_POST["lastname"];
$email=$_POST["email"];
mysql_query("INSERT INTO Test1('First Name', 'Surname', 'Email')
VALUES ('$firstname','$lastname','$email')");
确保使用正确的数据类型和长度创建了表结构。
Backstick字符``
应该用于转义表名和列名。 单引号字符''
应该用于转义字符串值。
在第二个示例中,表名使用单引号而非后缀进行转义。 此外,字段名称根本不会转义,这可能会导致第一个包含空格的字段名称出现问题。
正确的形式是:
mysql_query("INSERT INTO `Test1` (`First Name`, `Surname`, `Email`)
VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[email]')");
同样重要的是要注意PHP的mysql_
函数已被弃用 。 强烈建议使用其中一个替代方案, 如何在PHP中使用mysql_ *函数?
我试过,它不会增长我的数据库。 这是代码:
<?php
// Connecting to Ganoderma genome database
include('../utils/config.php');
// Inserting new data into the table
$sql = "INSERT INTO $var2 ('$column_id', '$column_name', '$column_seq') VALUES ('$_POST[id]', '$_POST[name]', '$_POST[seq]')";
// Qualifying successful entry
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
生物信息学家,艾泽克
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.