2016-08-22 1 views
4

У меня есть устаревшая система, и у меня есть файл php внутри нее, обновляющий одну таблицу. Теперь я добавил новую таблицу в свой db, и я хочу обновить эту таблицу. Проблема в том, что (по некоторым причинам) я не могу использовать другой запрос, и мне нужно изменить текущий запрос.Как обновить новые таблицы внутри другого запроса на обновление?

упрощенный бывший запрос: $q = "UPDATE t1 SET var=$var WHERE id=1";

Я не могу использовать "UPDATE t1,t2 SET t1.var=$var t2.var=$var2 WHERE id=1", поскольку он добавляет слишком много времени обработки. Возможно ли запустить два запроса на обновление в одном запросе? Я использую команды mysql во всей своей системе, и я не могу изменить его на mysqli.

+0

MySQLi имеет функцию мульти-запроса: http://php.net/manual/en/mysqli.multi-query.php – jeff

+0

@jeff спасибо. но, как я упоминал в вопросе, я не могу обновить его. – ananda

+0

Не должно быть причин, по которым вы не можете запускать 2 запроса один за другим. Почему вы не можете это сделать – RiggsFolly

ответ

0

Вы можете использовать нижеприведенный код, чтобы обновить 2 таблицы одновременно. :-)

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB"; 

$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);} 

$sql = "UPDATE t1 SET var=$var WHERE id=1"; 
$sql2 = "UPDATE t2 SET var=$var WHERE id=1"; 

if ($conn->query($sql) === TRUE) { 
    echo "t1 updated successfully"; 
} else { 
    echo "Error updating t1: " . $conn->error; 
} 

if ($conn->query($sql2) === TRUE) { 
    echo "t2 updated successfully"; 
} else { 
    echo "Error updating t2: " . $conn->error; 
} 

$conn->close(); 
?> 
+0

спасибо за ответ. но вы выполняете два отдельных запроса. То, что я хочу, это ОДИН запрос. – ananda

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