这段php代码意味着什么?我理解$key=>$瓦尔,但我没有拿到$pre

这段php代码意味着什么?我理解$key=>$瓦尔,但我没有拿到$pre,php,sql,database,Php,Sql,Database,这段php代码是什么意思 foreach ($data as $key => $val) { $pre = ($i > 0) ? ', ' : ''; $columns .= $pre.$key; $values .= $pre."'".$val."'"; $i++; } $query = "INSERT INTO ".$table." (".$columns.") VALUES (".$values.")"; 它将和数组(key=>value)转换

这段php代码是什么意思

foreach ($data as $key => $val) {
    $pre = ($i > 0) ? ', ' : '';
    $columns .= $pre.$key;
    $values .= $pre."'".$val."'";
    $i++;
}
$query = "INSERT INTO ".$table." (".$columns.") VALUES (".$values.")";
它将和数组(key=>value)转换为插入SQL

例如:

$array = array('date' => '2016-06-19 12:00:00', 'name' => 'Jamie');
将转换为:

INSERT INTO `table` (date, name) VALUES ('2016-06-19 12:00:00', 'Jamie');

实际代码是这样的,我想

$i = 0;
foreach ($data as $key => $val) {
    $pre = ($i > 0) ? ', ' : '';
    $columns .= $pre.$key;
    $values .= $pre."'".$val."'";
    $i++;
}
$query = "INSERT INTO ".$table." (".$columns.") VALUES (".$values.")";
你可以在这里写信

$pre = ($i > 0) ? ', ' : '';//this method is known as ternary Operator...
进入这个

if($i > 0) //this is classic if else method...
{
  $pre = ', '; 
} 
else
{ 
   $pre ='';
}

但是$pre变量是什么。。它的用途是什么?这是否提供了反sql注入?这是一个非常糟糕的代码的完美例子。参见php手册了解
内爆
@jack_007,
$pre
变量用于确定是否需要在行的开头加一个逗号,在本例中是状态,如果是第一次循环,则不添加逗号,否则添加逗号。不,它不会阻止SQL注入,因为变量没有转义,请参阅@JamieBicknell如果我要使用mysqli\u real\u escape\u string,那么我是否需要使用prepare和bind参数进行完全反SQL注入,或者仅仅使用real escape string将帮助我防止SQL注入。他正在通过
三元运算符
定义
$pre
。。。在google上查找它…根据您的代码,它用于连接值与
此代码是否具有反sql注入功能?@jack_007
$key
是db表的列名。。。因此,
$pre.$key
在$pre为“”时为
列名称1
,在$pre为“,”时为
,列名称2
。。。。查看另一个答案…如果这个答案消除了您的疑问,请不要忘记标记它…但千万不要在这里问这些类型的问题(不理解此代码的类型)。。。首先问你的导师:)给我解释一下每个变量有两行。“和”的用法是什么?它派生出什么?