php - INSERT INTO 数据库表,从表单不起作用。数据库

标签 php sql database

让我们直奔我的问题,我在这里编写的代码没有写入我的数据库,我也不知道为什么。目前我只是想掌握 php 和 sql,所以除了学习之外,这种形式没有任何意义。这是我得到的错误(第一句“连接到数据库”来 self 的 if 语句):

“连接到数据库错误:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在 ''test' ('name') VALUES ('daniel')' 附近使用的正确语法在第 1 行”

我的代码可能看起来有点困惑,因为其中一些来自 w3schools,一些来自 friend 。我无法弄清楚为什么这段代码不起作用,我已经根据我在网上和 stackoverflow 上找到的大量文章尝试了多种语法变体,但似乎都不起作用。我担心也许我什至没有连接到数据库,尽管我的 if 语句告诉我不是这样,所以这可能是个问题?

希望如果这个问题得到解决,这个问题将澄清数据库连接和一次点击从表单写入数据库。提前谢谢大家,这是我的代码。

HTML

<form action="insert.php" method="post">
Name: <input type="text" name="namefield" />
<input type="submit" />
</form>

PHP (插入.php)

<?php
$dbhost  = 'localhost';
$dbname  = 'carbon_db';
$dbuser  = 'username';
$dbpass  = 'password'; 

$con = mysql_connect($dbhost, $dbuser, $dbpass);

if($con == FALSE)
{
    echo 'Cannot connect to database' . mysql_error();
}
else
{
    echo 'Connected to database';
}

mysql_select_db($dbname, $con);


$sql="INSERT INTO 'test' ('name') 
VALUES ('$_POST[namefield]')";

if (!mysql_query($sql, $con))
{
    die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)
?>

最佳答案

在表名周围去掉引号或将它们更改为反引号:

改变:

$sql="INSERT INTO 'test' ('name') VALUES ('$_POST[namefield]')";

收件人:

$sql="INSERT INTO test ('name') VALUES ('$_POST[namefield]')";

或者

$sql="INSERT INTO `test` ('name') VALUES ('$_POST[namefield]')";

关于php - INSERT INTO 数据库表,从表单不起作用。数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7105406/

相关文章:

PHP 在 require_once 上失败

sql - 更新表

mysql - 如何计算嵌套选择查询中的中位数

sql - SQL 数据库系统中临时表的用例是什么?

php - mysql - 现有数据库错误

sql - 内容变化的表的最佳主键

php - Laravel Lighthouse - 按关系属性对查询进行排序

php - MYSQL LEFT JOIN 不显示空行

mysql - 在MySQL中高效处理不同类型的 "follow"函数

javascript - 在 Ajax 中实现这个精确的 PHP foreach 功能?