новичок с PHP и MySQL здесь. Я просмотрел другие статьи, чтобы попытаться объединить код, который мне нужен, но изо всех сил пытаюсь получить содержимое двух массивов, вставленных в два столбца в таблице MySQL.PHP-массивы вставляются в MySQL Таблица
В таблице MySQL структурировано на три колонки следующим образом -
|-------|-------|-------|
| id | date | value |
|-------|-------|-------|
идентификатор первичный ключ устанавливается с auto_increment. дата имеет дату. Значение имеет десятичный (5,2) тип данных.
У меня есть два PHP массивы $dates
и $values
, которые содержат следующие -
echo '<pre>'; print_r($dates); echo '</pre>';
Array
(
[0] => 2015
[1] => 2014
[2] => 2013
[3] => 2012
[4] => 2011
[5] => 2010
[6] => 2009
[7] => 2008
[8] => 2007
[9] => 2006
[10] => 2005
[11] => 2004
[12] => 2003
[13] => 2002
[14] => 2001
[15] => 2000
[16] => 1999
[17] => 1998
[18] => 1997
[19] => 1996
[20] => 1995
[21] => 1994
[22] => 1993
[23] => 1992
[24] => 1991
[25] => 1990
[26] => 1989
[27] => 1988
[28] => 1987
)
echo '<pre>'; print_r($values); echo '</pre>';
Array
(
[0] => 52.32
[1] => 98.97
[2] => 108.56
[3] => 111.63
[4] => 111.26
[5] => 79.61
[6] => 61.74
[7] => 96.94
[8] => 72.44
[9] => 65.16
[10] => 54.57
[11] => 38.26
[12] => 28.85
[13] => 24.99
[14] => 24.46
[15] => 28.66
[16] => 17.9
[17] => 12.76
[18] => 19.11
[19] => 20.64
[20] => 17.02
[21] => 15.86
[22] => 17.01
[23] => 19.32
[24] => 20.04
[25] => 23.76
[26] => 18.23
[27] => 14.91
[28] => 18.53
)
Я сериализовать данные в двух новых переменных до моего вставки запроса -
$mydates = serialize($dates);
$myvalues = serialize($values);
Моя вставка заявление является следующим:
$query = "INSERT INTO eia(date,value) VALUES ('$mydates','$myvalues')";
с некоторой ошибкой лин -
if ($conn->query($query)) {
$msg = ...Sucessfully Entered!
} else {
$msg = ...Error Entering!
}
if (isset($msg)){
echo $msg;
}
if (!$conn->query("INSERT INTO eia(date,value) VALUES ('$mydates','$myvalues')")) {
printf("Errormessage: %s\n", $conn->error);
}
Тогда, наконец, закрыть соединение -
mysqli_close($conn);
Когда это работает я получаю «успешно вышел» сообщение, но по проверке таблицы MySQL Я просто получить две строки со следующим -
id | date | value
1 |{null}| 0.00
2 |{null}| 0.00
Любые идеи, как я могу получить содержимое этих массивов, добавленных в каждую колонку т.е.
id | date | value
1 | 2015 | 52.32
2 | 2014 | 98.97
...
Благодарим вас заранее.
_ «Я сериализую данные на две новые переменные» _ - здесь нет абсолютно никакого смысла. И это также причина, по которой вы получаете NULL/0.00 в своей новой записи, потому что, сериализируя эти массивы, вы создаете _strings_, которые не соответствуют ни формату вашей даты, ни вашей десятичной колонки. – CBroe
@CBroe благодарит за отзыв. Я вижу ошибку, которую я здесь сделал, которая создала результирующую ошибку. – CRC