Задать вопрос
@danyfir

Как обновить данные в БД через php?

Стоит задача обновить в БД строку "payment" на значение "Да" при соблюдении определенных условий:
meta_value='1328'

По моей логике:
1) Мы подключаемся к БД через mysql_connect
2) в $result вводим запрос к БД для выборки meta_value='1328' (проверял, выборка 'SELECT * FROM nametable WHERE meta_value='1328' работает и выдаются нужные строки)
3) через while создаем массив из строк выдаваемые от запроса в пункте 2
4) в $buf заносим все post_id (idшки) этих строк
5) через 'update_post_meta($buf, 'payment', 'Да')' обновляем статус payment на Да (т.к. используется wordpress) подставляя $buf как ID обновляемой записи.

В итоге, написал код, но функцию свою он не выполняет... Может подскажете где я накосячил? Либо предложите альтернативный вариант (я плохо знаю Mysql, а php более-менее, поэтому, желательно, поподробнее при новом варианте).

$conn = mysql_connect('localhost', 'login', 'password');
 mysql_select_db ("namebd",$conn );
$result = mysql_query ("SELECT * FROM nametable WHERE meta_value='1328'");
    while ($row = $result->fetch_assoc()) {
    $buf = $row['post_id'];
    update_post_meta($buf, 'payment', 'Да');
    }
  • Вопрос задан
  • 480 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@vyrkmod
Пишу на php. И не стыдно.
Смотрим "возвращаемые значения" здесь, хлопаем себя по лбу и вместо "$result->fetch_assoc()" пишем "mysql_fetch_assoc($result)". А вообще, расширение mysql давным давно помечено как устаревшее, вместо него следует использовать mysqli или PDO.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
rooless
@rooless
а расширение mysql разве еще поддерживается?
Попробуй с mysli поработать, а лучше с pdo.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы