2013-02-11 10 views
6

próbuje dodać tekst do istniejącej wartości w mysql przy użyciu funkcji konkurenta mysql?dodać do istniejącej wartości w kolumnie mysql używając funkcji CONCAT?

więc istniejąca wartość jest obecnie „John” a po funkcja uruchomienia będzie „johnewvalue”

próbuję dodać kawałek tekstu „post” do istniejącego tekstu, który jest w moim kolumny przedmiotu w moja baza danych ptb_messages.

Próbuję to zrobić, używając funkcji konkurenta mysql, ale nie uzyskuję żadnych rezultatów.

$sql = mysql_query("UPDATE ptb_messages SET subject = CONCAT subject, 'newvalue' WHERE id='".$message_id."'"); 

Czy ktoś może mi pokazać sposób na uzyskanie tego, co chcę. dzięki.

+0

Wygląda nieprawidłowej składni CONCAT' '.. Trzeba kilka nawiasów. [** Proszę, nie używaj funkcji 'mysql_ *' w nowym kodzie **] (http://bit.ly/phpmsql). Nie są już utrzymywane [i są oficjalnie przestarzałe] (http://j.mp/XqV7Lp). Zobacz [** czerwone pudełko **] (http://j.mp/Te9zIL)? Dowiedz się więcej o [* przygotowanych wyciągach *] (http://j.mp/T9hLWi) i użyj [PDO] (http://php.net/pdo) lub [MySQLi] (http://php.net/ mysqli) - [ten artykuł] (http://j.mp/QEx8IB) pomoże ci zdecydować, który. – Kermit

Odpowiedz

16

należy

UPDATE ptb_messages 
SET subject = CONCAT(subject, 'newvalue') 
WHERE ... 

PHP

$sql = mysql_query("UPDATE ptb_messages SET subject = CONCAT(subject, 'newvalue') WHERE id='".$message_id."'"); 

Na marginesie, zapytanie jest podatny z SQL Injection jeżeli wartość (s) zmiennego les pochodzi z zewnątrz. Zapoznaj się z poniższym artykułem, aby dowiedzieć się, jak temu zapobiec. Używając PreparedStatements możesz pozbyć się pojedynczych cudzysłowów wokół wartości.

+0

dziękuję, wiesz, jak mogę to uruchomić tylko raz? –

+0

co masz na myśli, mówiąc: * uruchom tylko raz *? –

+0

cóż, gdy użytkownik odpowie na wiadomość od użytkownika, to wpisuje: odpowiedź po nagłówku tematu, ale jeśli: odpowiedź istnieje, pozostaw przedmiot bez zmian: nie odpowiadaj więcej razy. –