Выполнение 2 запросов в то же время это возможно?


мне Нужно изменить все поля одной таблицы и вставить только в одной строке другой результат. Я использую следующий код

 $Nid = intval($_GET['Nid']);

$sql = "UPDATE * FROM programacao SET status='offline' WHERE status ='online' ";
$sql2 = "UPDATE programacao SET status='online' WHERE Nid = :Nid";
try {

  $stmt = $DB->prepare($sql);
  $stmt = $DB->prepare($sql2);
  $stmt->bindValue(":Nid", $Nid);

   $stmt->execute();  

код работает, но работает только второй query.

 1
Author: Daniel Omine, 2016-02-19

1 answers

Такое поведение, как и ожидалось, второй запрос перезаписывает значение - $stmt, вы можете решить это двумя способами: создать два prepared statemetns или позвонить в два раза excute() repectivamente после prepare()

Вариант 1 -

$stmt1 = $DB->prepare($sql);  
$stmt2 = $DB->prepare($sql2);
$stmt2->bindValue(":Nid", $Nid);

$stmt1->execute();    
$stmt2->execute();    

Вариант 2 -

$stmt = $DB->prepare($sql);
$stmt->execute();    

$stmt->closeCursor();

$stmt = $DB->prepare($sql2);
$stmt->bindValue(":Nid", $Nid);
$stmt->execute();  
 1
Author: rray, 2016-02-20 00:41:24