Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 我不能上班了_Php_Mysql - Fatal编程技术网

Php 我不能上班了

Php 我不能上班了,php,mysql,Php,Mysql,我一直用这个把头撞到墙上: 将POST值获取到数组。。 选择外键。。 其他一些插入操作 在insert和$foreignkey的格式正确之前,所有值的格式都正确。 我重复了insert语句之前的值。 操作成功运行,但当我查看数据库时,没有插入任何内容 谁能告诉我我做错了什么吗?您必须使用大括号来嵌入数组变量: echo "This is an {$array['value']}"; 使用 如果你这样做 $insertdates = "INSERT INTO dates (asid,acq_da

我一直用这个把头撞到墙上:

将POST值获取到数组。。 选择外键。。 其他一些插入操作 在insert和$foreignkey的格式正确之前,所有值的格式都正确。 我重复了insert语句之前的值。 操作成功运行,但当我查看数据库时,没有插入任何内容


谁能告诉我我做错了什么吗?

您必须使用大括号来嵌入数组变量:

echo "This is an {$array['value']}";
使用

如果你这样做

$insertdates = "INSERT INTO dates (asid,acq_date, serv_guaranteedate
  , maintenance_period, expiration_date) 
  VALUES ('$foreignkey','$uservalues[1]','$uservalues[4]'
  ,'$uservalues[5]','$uservalues[3]')";
$upsdasult= mysql_query($insertdates);
if (!$upsdasult)
{
  die(mysql_errno($link) . ": " . mysql_error($link). "\n");
}
很可能它既不喜欢键,也不喜欢日期格式,但这会告诉你

检查您的$\u POST值

请尝试以下查询:

$query = sprintf("INSERT INTO dates set 

                     asid = '%s',
                     acq_date = '%s',
                     serv_guaranteedate = '%s',
                     maintenance_period = '%s',
                     expiration_date = '%s'",
                     mysql_real_escape_string($foreignkey),
                     mysql_real_escape_string($uservalues[1]),
                     mysql_real_escape_string($uservalues[4]),
                     mysql_real_escape_string($uservalues[5]),
                     mysql_real_escape_string($uservalues[3])
                 );
$result=mysql\u query$query

if($result) { echo 'success'; } else { echo mysql_error(); }

您的FK值不是应该是整数而不是字符串吗?如果您不使用“$foreignkey”,而只使用$foreignkey,那又如何?

将mysql\u错误保留为空。。。。。使用下面的代码

$upsdasult= mysql_query($insertdates) or die(mysql_error());
您不需要代码的其余部分

我认为您已从该页面复制了相同的查询。但是mysql\u error无论如何都会为您打印错误代码


请尝试此操作,并让我知道这是否是您要查找的…

回显完整的sql查询,并将结果放在phpmyadmin sql框中是否回显查询并将其粘贴到phpmyadmin中?表中是否有主键?谢谢大家,但仍然没有运气。。。这就是我在回显查询时得到的结果:插入日期asid、acq_日期、服务保证期、维护期、到期日期值“47”、“2008-01-29”、“2050-03-07”、“34”、“2069-12-22”,这样看来这些值是可以的,但表中仍然没有显示任何内容。有什么想法吗?显示调用mysql_错误的php代码。kr-1使用$foreignkey而不是“$foreignkey”会打开一个SQL注入孔。无论如何,它会打开一个SQL注入孔-可以设置foreignkey=”drop table。。。因此,请关闭值中的撇号。第二,如果他将foreignkey设置为一个不会打开任何漏洞的计算整数值。温习一下您的sql注入!仍然-1“$someint”的作用与MySQL中的$someint相同。后者需要额外的topor代码,而不是通常的mysql\u real\u escape\u字符串,前者不需要。foreignkey来自系统内部的查询,其中只存储自动递增的值。所以这并不重要。@all:在MySQL中,select*from tablea,其中x='11'与select*from tablea,其中x=11相同,因此没有任何理由省略引号。不,错误代码与此无关。我想知道的是为什么$PICKASSSSSULT foreignkey值消失了。我可以回显我的查询并看到它,我已经确定它是INT格式的,但是当查询实际运行时它会消失。@Henkka你说asid是一个外键。。。您正试图在该字段中插入值47。。。。您是否已检查其他相关表中是否存在主键47?因为如果字段是外键,它将不接受相关表主键以外的任何其他值。。。如果字段设置为not NULL,则即使为NULL也是不可接受的…是的,主键47存在,并且我已将其拾取到$PICKASSSULT外键整数的中,因此我可以稍后使用它,并且可以通过echo命令查看它。问题是,当实际查询运行时,值47似乎消失了。此外,该字段不接受空值,并受级联限制Commands@Henkka您是否尝试将输出查询直接复制到mysql中。。。插入正确吗?对不起,我只是想调试…我不是想粗鲁。我只是想给你足够的信息,让你可以帮助我,因为我很困惑。。。是的,使用echo命令生成的输出是我正在运行的实际查询,这些值是应该填充相关表的值。但据我所知,47的值永远不会进入数据库,即使它显示在屏幕上
if($result) { echo 'success'; } else { echo mysql_error(); }
$upsdasult= mysql_query($insertdates) or die(mysql_error());