名为2_1_paidused
NumberRenamed | Active
-----------------------
40 | 1
41 | 1
如果Active
包含0
?
设置为NumberRenamed
的代码
这是代码
$stmt_test = $db->prepare('UPDATE 2_1_paidused SET Active=0 WHERE NumberRenamed IN (?)');
$stmt_test->execute( array($value_execute_sql_paidused_for_inactive_rows) );
和$value_execute_sql_paidused_for_inactive_rows = '40,41';
。
或print_r(array($value_execute_sql_paidused_for_inactive_rows));
是
Array ( [0] => 40,41 )
结果0
列Active
仅针对NumberRenamed
40而不是针对41而设置。
如果将代码更改为$stmt_test = $db->prepare('UPDATE 2_1_paidused SET Active=0 WHERE NumberRenamed IN ('. $value_execute_sql_paidused_for_inactive_rows. ');');
然后所有工作(两个行的值都设置为0)
我需要纠正什么?
答案 0 :(得分:1)
我认为你真的不想运行这个查询:
UPDATE 2_1_paidused SET Active=0 WHERE NumberRenamed IN ('40,41')
您可能想要使用两个参数:
UPDATE 2_1_paidused SET Active=0 WHERE NumberRenamed IN (?, ?)
...然后使用两项数组调用execute()
。