让我们直奔我的问题,我在这里编写的代码没有写入我的数据库,我也不知道为什么。目前我只是想掌握 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/