Почему то все данные попадают в один столбец в таблице. Запрос такой. PHP: $sql = mysql_query("INSERT INTO purchases (`materials`, `volume`, `newmaterial`, `cost`, `data`, `store`, `orderok`) VALUES ('$materials'), ('$volume'), ('$newmaterial'), ('$cost'), ('$data'), ('$store'), ('$orderok')"); Не пойму от чего так происходит
попробуй вот так: PHP: "INSERT INTO purchases (`materials`, `volume`, `newmaterial`, `cost`, `data`, `store`, `orderok`) VALUES ('$materials', '$volume', '$newmaterial', '$cost', '$data', '$store', '$orderok')" вдруг получится... --- Добавлено --- это всё тупая машина не понимает чего ты от неё хочешь. не обращай внимания...
Вы же значете, что MySQL поддерживает мульти вставку данных? Синтаксис у таких запросов следующий: PHP: INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9); То есть, каждая запись оборачивается круглыми скобками. Если же мы запишем этот запрос так: PHP: INSERT INTO tbl_name (a,b,c) VALUES(1),(4),(7); То для "a" у нас есть данные, а поля "b" и "c" примут значения по умолчанию. Теперь сравните этот запрос со своим.
PHP: "INSERT INTO purchases (`materials`, `volume`, `newmaterial`, `cost`, `data`, `store`, `orderok`) VALUES ('".$materials."', '".$volume."', '".$newmaterial."','".$cost."', '".$data."', '".$store."', '".$orderok."')" иначе мои запросы не срабатывают--пробуй отредактировал, сам запутался
По ходу, я задействовал все десять пальцев на своих руках. Судя по всему, у вас и вывод ошибок отключен. С кавычками в последнем примере разберитесь.
PHP: INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9); $sql = mysql_query("INSERT INTO purchases (`materials`, `volume`, `newmaterial`, `cost`, `data`, `store`, `orderok`) VALUES ('$materials'), ('$volume'), ('$newmaterial'), ('$cost'), ('$data'), ('$store'), ('$orderok')"); и что не правильно ?
Я не говорил, что не правильно. Это очень даже приемлемый синтаксис для мульти вставки. Но вас же смущает, что . Посмотрите еще раз на варианты синтаксиса INSERT-запросов
Вы о чем уважаемый ? --- Добавлено --- Вопрос был ,Почему то все данные попадают в один столбец в таблице
Вопрос@Deonis Может Вы и дали ответ, но мне он не понятен ( --- Добавлено --- @Deonis VALUES(1,2,3),(4,5,6),(7,8,9); Мне не понятно, как я могу записать так свои переменные .
@leohome, попробуем еще раз. PHP: INSERT INTO tbl_name (a,b,c) VALUES (1,2,3); Запишеться одна строка: в поле "a" значение 1, в "b" - значение 2 и в "c" - 3 PHP: INSERT INTO tbl_name (a,b,c) VALUES (1,2,3), (4,5,6); Запишеться две строки. PHP: INSERT INTO tbl_name (a,b,c) VALUES (1,2,3), (4,5,6), (7,8,9); Запишеться три строки. А теперь ахтунг! PHP: INSERT INTO tbl_name (a,b,c) VALUES (1), (4), (7); Запишеться три строки, НО данные для поля "a" присутствуют, а для полей "b" и "c" их не указали. Поэтому запсиси в БД будут иметь такой вид Код (Text): a | b | c --------------------- 1 | | 4 | | 7 | | --- Добавлено --- P.S. Задействовал уже одиннадцатый палец
Ваш изначальный запрос имеет ту же схему, что и мой последний пример. Вам же, как я понимаю, нужна схема, как в первом примере, где идёт вставка одной строки. А такой запрос вам уже написал @TeslaFeo в своём ответе выше.
@Deonis я когда то создавал тут тему по поводу записи в БД. У меня почему то не срабатывают запросы с синтаксисом как у @TeslaFeo, а проходят только в виде что был мной выше указан, мне просто интересно, от чего это может зависить? я сам просто новичок-любитель
этого не может быть. Тот синтаксис, который ты указал, тоже норм (конкатенация называется). Тут нужно понимать, что PHP обращается к базе данных и передает ей строку запроса. БД возвращает результат. Нет никакой разницы, каким макаром ты сформируешь эту строку. Главное, чтобы в итоге получился запрос, понятный для СУБД.
@TeslaFeo значит это зависит от версии mysql ? периодически их меняю, и всё пытаюсь отправить запрос без этой кучи кавычек, но тру получается только в том случае, если каждая переменная заключена в кавычки именно таким образом, пробовал уже неоднократно и мне интересно, чего у кого то код написан так без этого гемора и все работает! ищу причину
PHP: $a = "SELECT * "; $b = "FROM tb_name"; $query1 = "SELECT * FROM tb_name"; $query2 = "SELECT * $b"; $query3 = "SELECT * ".$b; $query4 = $a.$b; переменные $query1, $query2, $query3 и $query4 будут содержать одну и ту же строку.
и тем не менее, причем в моем случае это касается только INSERT INTO-запросов в VALUES , только что проверил, дает фолс
PHP: $success=$mysqli->query( "INSERT INTO `$table` (`user_name` ,`ip` ,`data` ,`time`) VALUES ('".$user_name."','".$ip."','".$data."','".$time."')"); так запрос проходит, а PHP: $success=$mysqli->query( "INSERT INTO `$table` (`user_name` ,`ip` ,`data` ,`time`) VALUES ('$user_name','$ip,'$data','$time')"); даёт фолс --- Добавлено --- @TeslaFeo но я к этому уже приспособился, может подскажешь тут?https://php.ru/forum/threads/funkcija-substr-i-ee-rabota.63293/#post-514808