2014-01-08 2 views
1

Mysql назвал 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)

Что мне нужно исправить?

ответ

1

Я не думаю, что вы действительно хотите, чтобы запустить этот запрос:

UPDATE 2_1_paidused SET Active=0 WHERE NumberRenamed IN ('40,41') 

Вы, возможно, хотите использовать два параметры:

UPDATE 2_1_paidused SET Active=0 WHERE NumberRenamed IN (?, ?) 

... и затем вызвать execute() с массив из двух элементов.

Смежные вопросы