Поддержка Проблемы и решения Добавление значение в базу данных

  • Решено face2005

    (@face2005)


    Добрый день! создал таблицу в базе данных и хочу туда записывать значения. но что-то не так и в ячейку не хочет попадать значение переменной

    	$wpdb->replace(
    		'wp_btc',
    		[
    			'id'    => 1,
    			'data1' => $change_24h_Btc_1,
    			'data2' => 123,
    			'data3' => 12,
    		],
    		['%d', '%f', '%d', '%d']
    	);

    в data1 попадает 0.. хотя там дробное значение.. https://prnt.sc/x69JIt-tNp2V

    подскажите что не так?

    • Тема изменена 12 месяцев назад пользователем face2005.
    • Тема изменена 12 месяцев назад пользователем face2005.
Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тут может быть ряд причин. Самая простая это то что формат поля data1 в таблице не соответствует типу данных, передаваемых в $change_24h_Btc_1. Попробуйте изменить формат поля data1 в таблице на тип DECIMAL или FLOAT.
    Да и вообще убедитесь что ваша переменная содержит правильное значение.

    Автор face2005

    (@face2005)

    значение такого формата: -0.077

    менял на DECIMAL и FLOAT, все равно ноль попадает…

    когда просто присвою число, вот щас 55 назначил, то все ок…

    • Ответ изменён 12 месяцев назад пользователем face2005.
    Автор face2005

    (@face2005)

    $change_24h_Btc_1 = (float)$change_24h_Btc_1;

    и в число переводил…

    а в самой базе в таблице какой формат стоит?

    Автор face2005

    (@face2005)

    По пробуйте вот так:

    $wpdb->replace(
        'wp_btc',
        [
            'id'    => 1,
            'data1' => floatval( $change_24h_Btc_1 ),
            'data2' => 123,
            'data3' => 12,
        ],
        ['%f', '%d', '%d']
    );
    Автор face2005

    (@face2005)

    блин.. капец какой-то… все равно ноль попадает….

    Автор face2005

    (@face2005)

    на странице нормально выводит.. https://prnt.sc/GMSbxoEvEwd2

    https://prnt.sc/RtvWQDy9DN3h

    В самой таблице базы данных — float(11,0) — где первое число(11) это общее количество цифр а второе(0) количество цифр после запятой.

    Если поправить второе число. Полагаю теперь должно заработать:)))

    Автор face2005

    (@face2005)

    заработало! спасибо огромное!

    Ну так в базе у вас (11,0) — вот нули и обрубаются, сделайте нужное типа FLOAT(16, 8)
    упс, пока писал уже ответили 🙂

    • Ответ изменён 12 месяцев назад пользователем Igor.

    заработало! спасибо огромное!

    Обращайтесь…

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Добавление значение в базу данных» закрыта для новых ответов.