$file = file("P1802FAT_2017-02-19_08.55.11.dat");
foreach ($file as $value) {
$arr = explode(":", $value);
$sql = "INSERT INTO dat (beginheader, clk, typ, starttime, frames, starttrigger, stoptrigger, pda_reftimestamp, module_name_0, module_name_1, module_name_2, module_name_3, module_name_4, module_name_5, module_name_6, module_name_7, version, pdakeyinfo, pdakeyinfo2, pdadongleId, beginchannel, name, unit, pda_comment1, digchannel, pda_tbase, pda_typ, minscale, maxscale, xoffset, channel_offset, endchannel, endascii) VALUES ('$arr[1]')";
if (mysqli_query($link, $sql)) {
echo "Запись успешно сохранена.";
} else {
echo "Ошибка: Не удалось выполнить $sql. " . mysqli_error($link);
}
}
В браузере:
Ошибка: Не удалось выполнить INSERT INTO dat (beginheader, clk, typ, starttime, frames, starttrigger, stoptrigger, pda_reftimestamp, module_name_0, module_name_1, module_name_2, module_name_3, module_name_4, module_name_5, module_name_6, module_name_7, version, pdakeyinfo, pdakeyinfo2, pdadongleId, beginchannel, name, unit, pda_comment1, digchannel, pda_tbase, pda_typ, minscale, maxscale, xoffset, channel_offset, endchannel, endascii) VALUES (' '). Column count doesn't match value count at row 1Ошибка: Не удалось выполнить INSERT INTO dat (beginheader, clk, typ, starttime, frames, starttrigger, stoptrigger, pda_reftimestamp, module_name_0, module_name_1, module_name_2, module_name_3, module_name_4, module_name_5, module_name_6, module_name_7, version, pdakeyinfo, pdakeyinfo2, pdadongleId, beginchannel, name, unit, pda_comment1, digchannel, pda_tbase, pda_typ, minscale, maxscale, xoffset, channel_offset, endchannel, endascii) VALUES ('0.01 ').
Вы пытаетесь присвоить всем, или не всем полям в БД какое-то значение. MySQL не поддерживает хранение массивов. Сейчас у вас такой запрос(условно):
Присвой полям(имя, фамилия, отчество) значения(array), MySQL видит это так:
имя => array,
фамилия => Мне ничего не присвоили, выкину ошибку :(
отчество => Мне ничего не присвоили, выикину ошибку :(
У вас есть массив полей INSERT INTO dat (beginheader, clk,...)
и должен быть соответствующий массив значений VALUES('someinfo', '123', ...)
. Так как вы используете "голый" sql-запрос, а не пользуетесь PDO - то могу предложить вам использовать следующий код:
$file = file("P1802FAT_2017-02-19_08.55.11.dat");
foreach ($file as $value) {
$arr = explode(":", $value); // тут мы получили массив значений из строки
$sql = "INSERT INTO dat (beginheader, clk, typ, starttime, frames, starttrigger,
stoptrigger, pda_reftimestamp, module_name_0, module_name_1, module_name_2,
module_name_3, module_name_4, module_name_5, module_name_6, module_name_7, version,
pdakeyinfo, pdakeyinfo2, pdadongleId, beginchannel, name, unit, pda_comment1,
digchannel, pda_tbase, pda_typ, minscale, maxscale, xoffset, channel_offset,
endchannel, endascii)";
$values = implode(',', $arr) // тут мы "склеили" все значения в строку
$sql .= " VALUES({$values})" // и тут просто дополнили наш sql-запрос
if (mysqli_query($link, $sql)) {
echo "Запись успешно сохранена.";
} else {
echo "Ошибка: Не удалось выполнить $sql. " . mysqli_error($link);
}
}
НАПОМНЮ, что количество полей и количетсво значений ДОЛЖНО совпадать.
Об методе implode
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В приложении требуется использовать капчуГенерация и проверка капчи должна быть реализована локально, без использования внешних сервисов...
После перехода по ссылке на подтверждение емайл данные не записываются в базу данныхНе могу понять в чем проблема?
Есть рабочий вариант кода страницы, для вывода текста из БД с помощью RedBeanPHP: