0

希望是一个简单的修复,但整个周末一直困扰着我。

我有一个简单的脚本来连接到我的 MYSQL 数据库,然后使用 HTML 表单中的字段将新记录输入数据库。

该脚本工作得很好,但我没有在脚本中定义数据库列,只是使用插入然后引用 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);

但是,当我在代码中引用数据库字段名称时,它无法创建新记录。

我已经三次检查了字段名称的拼写(包括大写字母),并且没有抛出任何语法错误。

任何帮助将不胜感激。

干杯

稻田

4

5 回答 5

2

如果名称包含空格,则需要用反引号将列名括起来。

(`First Name`,
于 2013-01-27T13:12:29.890 回答
0

Backstick 字符``应该用于转义表名和列名。''应该使用单引号字符来转义字符串值。

在您的第二个示例中,表名使用单引号而不是反引号进行转义。此外,字段名称根本没有转义,这可能会导致第一个包含空格的字段名称出现问题。

正确的形式是:

 mysql_query("INSERT INTO `Test1` (`First Name`, `Surname`, `Email`)
              VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[email]')");

同样重要的是要注意PHP 的mysql_函数已被弃用。强烈建议使用为什么我不应该在 PHP 中使用 mysql_* 函数?

于 2013-01-27T13:24:10.517 回答
0

也许是两个字的列名。引用该列时,您可以使用“名字”或类似名称。

你能发布MySQL给你的确切错误吗?

于 2013-01-27T13:13:00.590 回答
0

尝试这个

$firstname=$_POST["firstname"];
$lastname=$_POST["lastname"];
$email=$_POST["email"];

mysql_query("INSERT INTO Test1('First Name', 'Surname', 'Email') 
VALUES ('$firstname','$lastname','$email')");

确保您已创建具有正确数据类型和长度的表结构。

于 2013-01-27T13:17:37.790 回答
0

我已经尝试过了,但它并没有增加我的数据库。这是代码:

<?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();
?>

生物信息学家,艾泽克

于 2017-02-15T13:51:30.093 回答