2012-02-02 5 views
2

Просто быстрый и простой вопрос: Я использую php и хочу обновить поле со значениями из поля в другой таблице. У меня синтаксис, отлично работающий в mysql, но не может показаться, что это правильно в php. примеробновить таблицу mysql с php-страницы

tbl_1: 
UID | Message | customer_email 

tbl_2 
AccountNumber | customer_email 

update tbl_1 
set tbl_1.Message = REPLACE(Message,'FOO',AccountNumber) 
from 
tbl_1 inner join tbl_2 on tbl_1.customer_email = tbl_2.customer_email; 

Любые идеи?

+0

Я не использовал REPLACE() (много) в MySQL, но обычно любой запрос, который запускается на консоли SQL, должен выполняться через PHP. Что вы подразумеваете под «не может показаться, что это правильно» - вы получаете ошибку? Если да, отправьте его. –

+0

Ошибка не отображается, i '; m просто не получает обновление таблицы. –

+2

Хотите поделиться своим текущим кодом php? –

ответ

2
$sql = "update tbl_1 set tbl_1.Message = REPLACE(Message,'FOO',AccountNumber) from tbl_1 inner join tbl_2 on tbl_1.customer_email = tbl_2.customer_email; "; 
$result=mysql_query($sql) or die("$sql: " . mysql_error()); 

Ваш запрос должен работать так, как есть. PHP не манипулирует SQL, он просто передает его.

Также помните, что если вы передаете пользовательский ввод в базу данных, всегда дезинформируйте его (или используйте PDO и спасите себя).

+0

Мой код

+0

Понял теперь исправлена ​​- кажется, глупо на самом деле: $ Query1 \t = \t «обновить DatabaseName.tbl_1 внутреннее соединение DatabaseName.tbl_2 на tbl_1.email = tbl_2.email установить сообщение = заменить (сообщение, '#### #',Пользовательский ИД)"; Кажется, что это проблема капитализации слова replace или последнего имени базы данных в самом запросе. –

+0

О, да, если у вас есть две базы данных, открытые ... должно было подумать об этом – phpmeh

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