Php скрипт обновления ячеек в БД

12
FANTiK123
На сайте с 30.12.2008
Offline
76
2163

В общем есть программа парсер (Content Downloader) которая может при подключении php скрипта обновлять данные в БД сайта .

вот сам скрипт

<?php

$db = mysql_connect("localhost", "имя_пользователя", "пароль");
mysql_select_db("название_базы");
mysql_query("SET NAMES utf8");
mysql_query("UPDATE wp_posts SET post_content = '".$_POST[field2_new_text]."' WHERE post_title='".$_POST[field1_text]."'");
?>

wp_posts - имя таблицы где менять данные;

post_content - столбец где меня данные;

post_title - столбец с ключем (если спарсенный ключ совпадает с ключем в базе, происходит замена в столбце post_content)

Но почему-то скрипт не хочет обновлять данные

Если в скрипт вбить конкретные данные, то обновляет.

<?php

$db = mysql_connect("localhost", "имя_пользователя", "пароль");
mysql_select_db("название_базы");
mysql_query("SET NAMES utf8");
mysql_query("UPDATE wp_posts SET post_content = 'Остаток' WHERE post_title='Артикул'");
?>

Почему-то при написании поста в коде заменяются "квадратные скобки" на эти символы :(
***91; = [ ***93; = ]

Кто что может подсказать? С меня пиво.

Универсальный парсер контента для создания интернет-магазинов (http://sbfactory.ru/?p=600) и не только ;)
C
На сайте с 04.02.2005
Offline
277
#1
FANTiK123:
В общем есть программа парсер (Content Downloader) которая может при подключении php скрипта обновлять данные в БД сайта .
вот сам скрипт
<?php

$db = mysql_connect("localhost", "имя_пользователя", "пароль");
mysql_select_db("название_базы");
mysql_query("SET NAMES utf8");
mysql_query("UPDATE wp_posts SET post_content = '".$_POST[field2_new_text]."' WHERE post_title='".$_POST[field1_text]."'");
?>

Так проанализируйте, что приходит в POST

кроме того, обратите внимание, на такие "магические кавычки"

И...

$_POST[field2_new_text] замените на $_POST['field2_new_text']
если приведенный вами код не условный.
Ragnarok
На сайте с 25.06.2010
Offline
226
#2

б-г с тобой, с базой же работаешь.

замени все

$_POST[...]

на

mysql_real_escape_string($_POST[...])
//TODO: перестать откладывать на потом
FANTiK123
На сайте с 30.12.2008
Offline
76
#3

Ragnarok

сделал так не работает

<?php

$db = mysql_connect("localhost", "Имя БД", "Пароль");
mysql_select_db("База");
mysql_query("SET NAMES utf8");
mysql_query("UPDATE SC_products SET in_stock = '".mysql_real_escape_string($_POST[field2_new_text])."' WHERE product_code= '".mysql_real_escape_string($_POST[field1_text])."'");
?>

сделал так не работает

<?php

$db = mysql_connect("localhost", "Имя БД", "Пароль");
mysql_select_db("База");
mysql_query("SET NAMES utf8");
mysql_query("UPDATE SC_products SET in_stock = mysql_real_escape_string($_POST[field2_new_text]) WHERE product_code= mysql_real_escape_string($_POST[field1_text])");
?>
C
На сайте с 04.02.2005
Offline
277
#4

Кодировка страницы с которой отправляется форма?

FANTiK123
На сайте с 30.12.2008
Offline
76
#5
Chukcha:
Кодировка страницы с которой отправляется форма?

utf8 наверно, а что за форма? Откуда данные берутся? Скрипт сохранен в кодировке utf-8, Это я проверил.

C
На сайте с 04.02.2005
Offline
277
#6
utf8 наверно, а что за форма?

про кодировку поинтересуйтесь

Про форму - забудьте (Или же... напишите тест с формой)

FANTiK123
На сайте с 30.12.2008
Offline
76
#7

Chukcha, кодировка текста которая предполагается "писаться" в базу utf-8

Ни кто не может разве подсказать или правильно написать этот скрипт, чтоб писалось в БД?

TF-Studio
На сайте с 17.08.2010
Offline
334
#8

для начала:

echo '<pre>';

print_r ($_POST);

возможно данные не правильно доходят.

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
FANTiK123
На сайте с 30.12.2008
Offline
76
#9

TF-Studio А в коде их куда вставлять, я просто не соображаю в этом.

siv1987
На сайте с 02.04.2009
Offline
427
#10
FANTiK123:
сделал так не работает

Вам же сказали, поставить кавычки у ключей массива - mysql_real_escape_string( $_POST['field2_new_text'] )

И не видно что форум калечит квадратные скобки, обязательно нужно обрамлять в php? Оформляйте в code.

И да, после <?php

echo '<pre>'; print_r ($_POST); die;

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий