Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.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 插入查询在mysqli中不起作用_Php_Mysqli_Xampp - Fatal编程技术网

Php 插入查询在mysqli中不起作用

Php 插入查询在mysqli中不起作用,php,mysqli,xampp,Php,Mysqli,Xampp,我有一个名为user\u data的表,其中包含5行-id(主键)、姓名、地址、电话、性别 mysqli_query($con,"INSERT INTO user_data VALUES ('Peter_malik', 'Griffin door',35897,'male')"); 它不起作用。但是当我尝试这个时,它起作用了 mysqli_query($con,"INSERT INTO user_data (name,address,phone,sex) VALUES ('Peter_Gre

我有一个名为
user\u data
的表,其中包含5行-
id(主键)、姓名、地址、电话、性别

mysqli_query($con,"INSERT INTO user_data  VALUES ('Peter_malik', 'Griffin door',35897,'male')");
它不起作用。但是当我尝试这个时,它起作用了

mysqli_query($con,"INSERT INTO user_data (name,address,phone,sex) VALUES ('Peter_Gregory', 'Griffin door',35897,'male')");

我不明白这背后的真正问题是什么。我使用的是PHP 5.4.7和XAMPP 1.8.1。

它不插入第一个查询,因为它假设第一个值,即“Peter_malik”是主键,但失败了

在查询中指定列名时,它知道哪一列的值

I在第一种情况下,即

'Peter_malik', 'Griffin door',35897,'male'
将参考

id(pk),name,address,phone
因此,您需要将第一个值作为
NULL
传递,以便id自动递增。因此,第一个查询应该是

VALUES (NULL, 'Peter_malik', 'Griffin door',35897,'male')

它不会插入到第一个查询中,因为它假定第一个值,即“Peter_malik”是主键,因此失败

在查询中指定列名时,它知道哪一列的值

I在第一种情况下,即

'Peter_malik', 'Griffin door',35897,'male'
将参考

id(pk),name,address,phone
因此,您需要将第一个值作为
NULL
传递,以便id自动递增。因此,第一个查询应该是

VALUES (NULL, 'Peter_malik', 'Griffin door',35897,'male')

如果您的表有5列
id、name、address、phone
sex
,则您的表必须提供5个值,每列一个。由于stament只提供4个值,因此需要一个列列表来告诉MySQL您提供了哪些值

如果id列是自动增量列,则可以在values子句中提供
null

所以你必须说:

 INSERT INTO user_data  VALUES (NULL, 'Peter_malik', 'Griffin door',35897,'male');


如果您的表有5列
id、name、address、phone
sex
,则您的表必须提供5个值,每列一个。由于stament只提供4个值,因此需要一个列列表来告诉MySQL您提供了哪些值

如果id列是自动增量列,则可以在values子句中提供
null

所以你必须说:

 INSERT INTO user_data  VALUES (NULL, 'Peter_malik', 'Griffin door',35897,'male');

与此相反:

mysqli_query($con,"INSERT INTO user_data  VALUES ('Peter_malik', 'Griffin door',35897,'male')");
当字段设置为
notnull

mysqli_query($con,"INSERT INTO user_data  VALUES (NULL, 'Peter_malik', 'Griffin door',35897,'male')");
mysqli_query($con,"INSERT INTO user_data  VALUES (0, 'Peter_malik', 'Griffin door',35897,'male')")
或者在字段设置为
NULL

mysqli_query($con,"INSERT INTO user_data  VALUES (NULL, 'Peter_malik', 'Griffin door',35897,'male')");
mysqli_query($con,"INSERT INTO user_data  VALUES (0, 'Peter_malik', 'Griffin door',35897,'male')")
请参阅mysql手册:

,而不是以下内容:

mysqli_query($con,"INSERT INTO user_data  VALUES ('Peter_malik', 'Griffin door',35897,'male')");
当字段设置为
notnull

mysqli_query($con,"INSERT INTO user_data  VALUES (NULL, 'Peter_malik', 'Griffin door',35897,'male')");
mysqli_query($con,"INSERT INTO user_data  VALUES (0, 'Peter_malik', 'Griffin door',35897,'male')")
或者在字段设置为
NULL

mysqli_query($con,"INSERT INTO user_data  VALUES (NULL, 'Peter_malik', 'Griffin door',35897,'male')");
mysqli_query($con,"INSERT INTO user_data  VALUES (0, 'Peter_malik', 'Griffin door',35897,'male')")

请参阅mysql手册:

您需要在insert语句中包含id列:

mysqli_query($con,"INSERT INTO user_data VALUES (null, 'Peter_malik', 'Griffin door',35897,'male')");

,前提是您的id字段设置为自动递增!;)

您需要在insert语句中包含id列:

mysqli_query($con,"INSERT INTO user_data VALUES (null, 'Peter_malik', 'Griffin door',35897,'male')");

,前提是您的id字段设置为自动递增!;)

如果您在第一次查询中也提供了ID,那么它将正常工作。 假设id=1

mysqli_query($con,"INSERT INTO user_data  VALUES (1,'Peter_malik', 'Griffin door',35897,'male')");

正如其他人所说,当您在查询中没有明确提到列名时,您必须提供所有值。

如果您在第一次查询中也提供了ID,那么它将毫无问题地工作。 假设id=1

mysqli_query($con,"INSERT INTO user_data  VALUES (1,'Peter_malik', 'Griffin door',35897,'male')");

正如其他人所说,当您在查询中没有明确提到列名时,您必须提供所有值。

当您尝试以下查询时

mysqli_query($con,"INSERT INTO user_data  VALUES ('Peter_malik', 'Griffin door',35897,'male')");
在这个查询中,您只在表中插入了4个值,但表中有5个字段,这导致了问题,因为在上面的查询中,值插入了form first字段&数据库中的序列或数据类型不匹配,因为这个查询导致了问题

如果要插入wuthout指定字段,则可以使用以下查询

mysqli_query($con,"INSERT INTO user_data  VALUES (0,'Peter_malik', 'Griffin door',35897,'male')");<br><br>
mysqli_查询($con,“插入用户_数据值(0,'Peter_malik','Griffin door',35897,'male'))

它会正常工作


在第二个查询中,您还指定了字段名及其对应的值,这样该查询就不会引起任何问题。

当您尝试以下查询时

mysqli_query($con,"INSERT INTO user_data  VALUES ('Peter_malik', 'Griffin door',35897,'male')");
在这个查询中,您只在表中插入了4个值,但表中有5个字段,这导致了问题,因为在上面的查询中,值插入了form first字段&数据库中的序列或数据类型不匹配,因为这个查询导致了问题

如果要插入wuthout指定字段,则可以使用以下查询

mysqli_query($con,"INSERT INTO user_data  VALUES (0,'Peter_malik', 'Griffin door',35897,'male')");<br><br>
mysqli_查询($con,“插入用户_数据值(0,'Peter_malik','Griffin door',35897,'male'))

它会正常工作


在第二次查询中,您还指定了字段名及其对应的值,这样该查询就不会引起任何问题。

真正的问题是您没有告诉查询在哪些字段中插入了这些值第二次查询是正确的,您可以这样插入,或者通过new SETreal,您没有告诉查询在哪些字段中插入了这些值第二次查询中,哪些字段插入了这些值是正确的,您可以这样插入,或者通过新设置插入。因为我已将我的ID设置为Not Null,我们不能将Null作为第一列名称。我检查了您的代码,它不起作用。无论如何,我理解这个问题。谢谢,这意味着您的
ID
字段不是自动递增的。在这种情况下,你应该总是插入一个id。谢谢你,伙计。我明白这一点,因为我已经将我的id设置为非空,我们不能将空作为第一列名称。我检查了你的代码,它不起作用。无论如何,我理解这个问题。谢谢,这意味着你的
id
字段不是自动递增的。在这种情况下,你应该总是插入一个id。谢谢你,伙计。我知道我在phpmyadmin中将第一列设为NOT Null。因此,如果我在查询中设置Null,它就不起作用了。@AnazA但你必须有一些自动增量,因为您不需要证明id列的值。我已在phpmyadmin中将第一列设置为非空。因此,如果在查询中设置空值,则不起作用。@AnazA但您必须进行一些自动递增操作,因为您不需要证明id列的值。@Anaz a-无论它是否为自动递增字段,您仍然可以插入