Проблема выполнения многостолового MySQL-запроса из PHP - PullRequest
0 голосов
/ 01 февраля 2012

Я пытаюсь сопоставить строки в таблице MySQL, используя значения из table1.column1 и table2.column3, а затем скопировать значение из table2.column2 в table1.column1 для каждого совпадения.Запрос ниже делает то, что мне нужно, но только когда я выполняю его вручную (через phpmyadmin).Когда я пытаюсь выполнить его из PHP, я получаю ошибку Unknown column table1.column1 in 'field list'.Вот мой PHP-код:

<?php
mysql_connect($host,$user,$pass);
$db_selected = mysql_select_db($data);

$sql = "UPDATE table1 t1, table2 t2 
        SET t1.column1 = t2.column2 
        WHERE t1.column1 = t2.column3";

$result = mysql_query($sql);

if (!$result) {
  echo mysql_error();
} ?>

Я знаю, что информация о соединении mysql работает, потому что я могу выполнять другие запросы.Из моего исследования ошибки кажется, что мне могут понадобиться обратные метки вокруг некоторой части запроса, но после нескольких попыток я не могу найти правильный путь.

РЕДАКТИРОВАТЬ 1 - По запросувот настоящий запрос:

UPDATE wp_mf_custom_groups,wp_mf_posttypes
SET wp_mf_custom_groups.post_type=wp_mf_posttypes.type
WHERE wp_mf_custom_groups.post_type=wp_mf_posttypes.id

Выводит ошибку

Unknown column 'wp_mf_custom_groups.post_type' in 'field list'

Дополнительная информация, которую я только что понял, может конфликтовать с ней.До того, как это произошло, я также переименовал таблицу, используя:

RENAME TABLE wp_mf_module_groups TO wp_mf_custom_groups

Может быть, поскольку таблица была просто переименована, она не может ссылаться на нее?

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Работало, когда я добавлял обратные пометки в столбцы только после WHERE

UPDATE wp_mf_custom_groups,wp_mf_posttypes
SET wp_mf_custom_groups.post_type=wp_mf_posttypes.type
WHERE wp_mf_custom_groups.`post_type=wp_mf_posttypes.id
0 голосов
/ 01 февраля 2012

Если запрос работает с PHPmyadmin, попробуйте это

<?php
$con = mysql_connect($host,$user,$pass) or die('Failed to connect');
$db_selected = mysql_select_db('db_name', $con);

$sql = "UPDATE table1 t1, table2 t2 
    SET t1.column1 = t2.column2 
    WHERE t1.column1 = t2.column3";

$result = mysql_query($sql, $con);

if (!$result) {
  echo mysql_error();
} ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...