【问题标题】:Having Trouble Inserting Array Possibly Due to Table Structure可能由于表结构而无法插入数组
【发布时间】:2013-06-04 19:52:31
【问题描述】:

这是表格结构的截图:

https://docs.google.com/file/d/0By2lFlhEzILjYlM4SjdhdFNpbk0/edit?usp=sharing

当我尝试对数组执行以下INSERT INTO sql 命令时,我得到一个空白页(在本地运行)。这是sql操作:

foreach($insertProductMap as $rowEntry => $virtuemartProductPrice)

   {


$sql_updateProductPrice = "INSERT INTO `$abc_virtuemart_product_prices` (`virtuemart_product_price_id`, `virtuemart_product_id`, `virtuemart_shoppergroup_id`, `product_price`, `override`, `product_override_price`, `product_tax_id`, `product_discount_id`, `product_currency`, `product_price_publish_up`, `product_price_publish_down`, `price_quantity_start`, `price_quantity_end`, `created_on`, `created_by`, `modified_on`, `modified_by`, `locked_on`, `locked_by`) VALUES ('5', '0', NULL, '".mysql_real_escape_string($virtuemartProductPrice)."', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0000-00-00 00:00:00', '0', '0000-00-00 00:00:00', '0', '0000-00-00 00:00:00', '0')";

mysql_query($sql_updateProductPrice);

   }

这只是我尝试更新此表的众多迭代之一。我已经在其他表上测试了类似的数组插入,它工作正常。这就是让我相信数据库结构中一定存在我不正确调用的原因。有什么想法吗?

【问题讨论】:

    标签: mysql arrays data-structures insert auto-increment


    【解决方案1】:

    据我所知,MYSQL 错误不会破坏页面。

    页面上还有其他代码吗?如果您的页面上没有其他代码,那么问题将是页面上没有显示任何内容。如果是 PHP,请尝试将 ini_set("display_errors","1"); 放在脚本的开头以显示错误。

    如果您仍然没有看到任何错误,请尝试将 echo "a"; 放在脚本顶部并重新加载您的页面。你应该看到一个“a”。继续将这一行移到你的脚本中;如果你看到它,这一行在你的错误之前,如果你没有看到它,这一行在你的错误之后。

    此外,您需要清理输入内容,不仅要防止 SQL injection,还要防止撇号破坏内容。

    【讨论】:

    • 感谢您的建议。我有这个通过 php 脚本运行。如您所述,该脚本将使用 echo 调用加载 100%。我现在在脚本顶部显示错误并且有一些“未定义的变量”。我将研究这些问题,看看是否能解决问题。
    • 我已经定义了变量,但现在的问题是脚本没有插入值数组。它只会从数组中插入 1 行。
    • 数组不是字符串,因此不能像普通变量一样将其保存到数据库中。但是,如果您使用serializeunserialize 函数,则可以将数组转换为字符串。
    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    相关资源
    最近更新 更多