Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 插入到数据库表中,表单不工作。SQL_Php_Sql_Database - Fatal编程技术网

Php 插入到数据库表中,表单不工作。SQL

Php 插入到数据库表中,表单不工作。SQL,php,sql,database,Php,Sql,Database,让我们直奔我的问题,我在这里写的代码没有写入我的数据库,我无法找出原因。目前,我只是简单地尝试掌握php和sql,因此除了学习之外,这种形式没有任何意义。下面是我得到的错误(第一句“连接到数据库”来自我的if语句): “连接到数据库错误:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第1行“test”('name')值('daniel')”附近使用的正确语法” 我的代码看起来可能有点混乱,因为有些代码来自w3schools,有些代码来自朋友。我不明白为什么这段代码不起作

让我们直奔我的问题,我在这里写的代码没有写入我的数据库,我无法找出原因。目前,我只是简单地尝试掌握php和sql,因此除了学习之外,这种形式没有任何意义。下面是我得到的错误(第一句“连接到数据库”来自我的if语句):

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

我的代码看起来可能有点混乱,因为有些代码来自w3schools,有些代码来自朋友。我不明白为什么这段代码不起作用,我在网上和stackoverflow上找到的大量文章的基础上尝试了许多语法变体,但似乎都不起作用。我担心我甚至没有连接到数据库,尽管我的if语句告诉我不是这样,所以这可能是个问题

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

HTML


姓名:
PHP(insert.PHP)


在表名周围删除引号,或将其更改为反勾号:

更改:

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


在引用表/列名时,请尝试使用“而不是”

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

删除sql语句周围的单引号并替换为反引号(甚至不确定它们是否必要):


将表名和列名周围的单引号更改为反勾号。或者把它们一起扔掉

$sql="INSERT INTO `test` (`name`)  VALUES ('{$_POST['namefield']}')";
另外,在不使用
{}
语法或拆分字符串的情况下,不要直接在字符串中引用关联数组(
$\u POST
)-您在那里所做的会发出E\u通知,应该避免


彻底-你会惊讶于你能(和不能)合法地在PHP字符串中做什么…

通常最好使用backticks for MySQL,就像任何其他存储引擎一样,它有自己的保留名称和保留插入做法

试一试

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

或者使用正确的引号``——实际上是反勾号。所以使用它们进行代码升级,所以无法显示它是如何工作的:)完美就像一个魅力,非常感谢,伙计。虽然我现在确实有一个问题,但我的键盘上没有反勾号,我想这是因为我使用的是英国键盘。有人知道怎么避开这件事吗?或者在我的键盘上找到它们的快捷方式?“我的英国键盘在左上角的escape键下方,tab键上方,数字“1”的左侧有回音。啊,谢谢你,我找到了。这是一个宝贵的半小时。谢谢你的帮助,伙计。
$sql="INSERT INTO `test` ('name') VALUES ('$_POST[namefield]')";
$sql="INSERT INTO `test` (`name`) 
VALUES ('$_POST[namefield]')";
$sql="INSERT INTO `test` ('name') 
VALUES ('$_POST[namefield]')";
$sql="INSERT INTO `test` (`name`)  VALUES ('{$_POST['namefield']}')";
$sql = "INSERT INTO `test` (`name`) VALUES ('".$_POST['namefield']."')";