Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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
PHP5.3动态数组已损坏_Php_Arrays_Php 5.3 - Fatal编程技术网

PHP5.3动态数组已损坏

PHP5.3动态数组已损坏,php,arrays,php-5.3,Php,Arrays,Php 5.3,我有一个旧式系统,已经切换到运行PHP5.3。出现的一个问题是设计用于编辑表中动态生成的值的代码。editinvoice数组没有值。有什么想法吗 //Line Item x:<input type="text" name="editinvoice[lineitem_text_x]"> //Value x:<input type="text" name="editinvoice[lineitem_amount_x]"> //edit values in the in

我有一个旧式系统,已经切换到运行PHP5.3。出现的一个问题是设计用于编辑表中动态生成的值的代码。editinvoice数组没有值。有什么想法吗

//Line Item x:<input type="text" name="editinvoice[lineitem_text_x]">
//Value x:<input type="text"    name="editinvoice[lineitem_amount_x]">

//edit values in the invoice table
$sqldata = array();
foreach   ($_POST['editinvoice'] AS $k => $v)
{
    $sqldata[] = "$k = '$v'";
}
$sql = "UPDATE db.invoices SET ".implode(',', $sqldata)." WHERE (booking_id = '$booking_id') LIMIT 1";
mysql_query($sql);
//行项目x:
//值x:
//编辑发票表中的值
$sqldata=array();
foreach($_POST['editinvoice']为$k=>$v)
{
$sqldata[]=“$k=”$v'”;
}
$sql=“UPDATE db.invoices SET”。内爆(',',$sqldata)。“其中(booking\u id='$booking\u id')限制1”;
mysql_查询($sql);

我知道mysql被贬低了,但是,没有资源来重写系统,而且它在内部网上,所以不必担心SQL注入

您的代码意味着您希望
$\u POST['editinvoice']
是一个数组。但是你说你添加了一个地方来代替
magic\u quotes\u gpc
a

foreach($_POST as $key => $val){
    $_POST[$key] = addslashes($val);
}
猜猜数组
$\u POST['editinvoice']
发生了什么

<?php

$expected = array("foo" => "bar");
$_POST["editinvoice"] = addslashes($expected);
assert ($expected == $_POST["editinvoice"]); // it's NULL

尝试转储
$sqldata
$sql
。他们有什么价值观?尝试在mysql中直接运行您的
echo$sql
输出。它说什么?乍一看,我没有发现任何兼容性问题。也许你没有启用mysql扩展?我敢打赌,(a)问题是在PHP5.3中,magic_quotes_gpc关闭了,(b)你有一个巨大的SQL注入漏洞,这应该是你主要关心的。这段代码在每个页面上运行,以避免magic_quotes的贬值。foreach($_postas$key=>$val){$_POST[$key]=addslashes($val);}@lolka_bolka-value for[“editinvoice”]=>NULL