这有点像是在暗中捅一针,但我很有信心,问题在于你的foreach循环。它被破坏了(它不会执行任何操作,因为只有一条空语句(;
) 受影响,您可能希望它有一个包含其余代码的块。
例如:
<?php
foreach(array(1, 2, 3) as $test);
print $test . "\\n";
将仅打印3,而
<?php
foreach(array(1, 2, 3) as $test) // note the lack of the semicolon.
print $test . "\\n";
将打印1、2和3的行。作为一般规则,我建议始终明确表示要在循环中重复的内容。使用大括号,例如。
<?php
foreach(array(1, 2, 3) as $test) {
print $test . "\\n";
}
这本书很容易阅读,可以让你免受这些漏洞的侵害。如果必须在循环中添加另一行,只需将其添加到右大括号之前。
这段代码可能就是您想要的。
$project_id = $_SESSION[\'project_id\'];
global $wpdb;
$reward_ids = $wpdb->get_results("SELECT * FROM wpxa_rewards WHERE project_id = $project_id");
foreach($reward_ids as $reward_id) {
$r_id = $reward_id->ID;
$count = count( $project_reward_title );
for ( $i = 0; $i < $count; $i++ ) {
$wpdb->update( \'wpxa_rewards\',
array(
\'reward_title\' => $project_reward_title[$i],
\'reward_description\' => $project_reward_description[$i],
\'reward_amount\' => $project_reward_amount[$i],
\'reward_shipping\' => $project_reward_shipping[$i],
\'est_date\' => $project_est_date[$i]
),
array( \'ID\' => $r_id ),
array(
\'%s\',
\'%s\',
\'%d\',
\'%s\',
\'%s\'
),
array( \'%d\' )
);
}
}