用PHP将记录插入MYSQL数据库
希望是一个简单的解决办法,但整个周末一直困扰着我 我有一个简单的脚本连接到MYSQL数据库,然后使用HTML表单中的字段将新记录输入数据库 脚本运行得很好,但我没有在脚本中定义数据库列,只是使用insert into,然后将值引用为HTLM表单字段 工作用PHP将记录插入MYSQL数据库,php,mysql,Php,Mysql,希望是一个简单的解决办法,但整个周末一直困扰着我 我有一个简单的脚本连接到MYSQL数据库,然后使用HTML表单中的字段将新记录输入数据库 脚本运行得很好,但我没有在脚本中定义数据库列,只是使用insert into,然后将值引用为HTLM表单字段 工作 mysql_select_db("golfingdb", $con); mysql_query("INSERT INTO Test1 VALUES ('$_POST[firstname]','$_POST[lastname]','$_POS
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);
但是,当我在代码中引用数据库字段名称时,它无法生成新记录
我已经对字段名的拼写(包括大写字母)进行了三次检查,没有发现任何语法错误
任何帮助都将不胜感激
干杯
Paddy如果列名包含空格,则需要在列名周围加上反勾
(`First Name`,
可能是两个字的列名。在引用列时,可以使用“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 characters
`
来转义表名和列名。应使用单引号字符'
来转义字符串值
在第二个示例中,表名用单引号而不是反斜杠转义。此外,字段名根本不会转义,这可能会导致包含空格的第一个字段名出现问题
(`First Name`,
正确的形式是:
mysql_query("INSERT INTO `Test1` (`First Name`, `Surname`, `Email`)
VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[email]')");
还需要注意的是,PHP的
mysql\uu
函数已被弃用。强烈建议使用《我已经尝试过了》中讨论过的备选方案之一,但它不会增加我的数据库。代码如下:
<?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();
?>
您正在使用并且应该使用。你也很容易受到现代API的影响,因为它会让你更容易使用。我已经更改了数据库字段,所以它不包含空格,脚本现在可以正常工作了。谢谢,汉克斯,我尝试过这个,但运气不好,但正是空间造成了问题。我在数据库中重命名了字段,但没有空格,现在脚本运行良好。我稍后将尝试此操作,看看它是否能解决字段名称中空格的问题。我认为我可以稍后切换到其他选项,对吗?大致相同的PHP代码,但使用不同的运算符和参数?我有一点压力,需要完成一个工作模型,因此学习所有新函数的时间很短。mysql\uz
函数已被弃用,但目前仍在工作。它们被认为是不安全的,将来可能会从PHP中完全删除。因此,虽然你可以在短期内使用它们,但这只是一种不好的做法,在不远的将来肯定会被打破。此外,这篇文章已经发表4年了,你的答案在4年前是/可能是有用的,在2017年,使用该代码是非常危险的