【发布时间】:2013-04-05 21:52:51
【问题描述】:
我使用此代码成功插入记录:
foreach($R as $k=>$v)
{
$test_id = str_replace('rep_result_', '', $k);
if(strstr($k, 'rep_result_'))
{
$content = $v;
$SQL = "INSERT INTO report SET
rep_te_id = '$test_id',
rep_result = '$content',
record_id = '$R[payment_id]',
rep_date = '$dt'";
但现在我的表中有两个额外的字段,remark 和 nor。所以现在,为了插入所有数据,我编写了以下代码:
foreach($R as $k=>$v)
{
$test_id = str_replace('rep_result_', '', $k);
if(strstr($k, 'rep_result_'))
{
$content = $v;
if(strstr($k, 'remark_'))
{
$remark=$v;
if(strstr($k, 'nor_'))
{
$nor=$v;
$SQL = "INSERT INTO report SET
rep_te_id = '$test_id',
rep_result = '$content',
record_id = '$R[payment_id]',
remark = '**$remark**',
nor = '**$nor**',
rep_date = '$dt'";
我没有在数据库中得到任何东西。这里并非一切都好。如果我只使用一个if 条件,那么数据就像(rep_result,remark,nor any one) 一样被插入。
if(strstr($k, 'remark_'))
$remark=$v;
但是当我使用所有三个条件时,什么都没有存储。我知道我有ifstatement 或foreach 循环问题。
【问题讨论】:
-
请 - 学习使用 MySQLi 或 PDO 和准备好的语句 - 如果您只是在学习,请学习使用好的做法而不是坏的做法
-
还要学习 SQL 的语法,你将 INSERT 的结构与 UPDATE 的结构结合起来
-
您对 SQL 注入攻击敞开了大门。请了解如何使用参数化查询(最好是使用 PDO 模块)来保护您的 Web 应用程序。 bobby-tables.com/php 有一些示例可以帮助您入门。
标签: php mysql if-statement insert foreach