Вставка списка имен папок в мою базу данных с помощью PHP
Привет, мне нужно взять список имен папок в свою базу данных, как я могу это сделать?
Я кодирую так, но он берет только последние данные из списка папок. - что случилось?
Также я хочу : если есть такое же название проекта. он не получает его дважды и дает мне предупреждение о том, что " уже существует это имя"
Спасибо.
Что я уже пробовал:
<?php if($_POST["action"] == "fetch") $connect = mysqli_connect("localhost", "root", "Pasword", "folder"); $folder = array_filter(glob('aaa/*'), 'is_dir'); foreach($folder as $name) $sql = "INSERT INTO folder (folder_name) VALUES ('$name') "; if(mysqli_query($connect, $sql)) ?>
Richard MacCutchan
Ваш foreach
и if
утверждения неполны.
Haluk Aydogan
Какова правильная форма кода?
Richard MacCutchan
Вам нужно правильно выучить язык: PHP: foreach - руководство пользователя[^].
Haluk Aydogan
Вот платформа обучения и помощи, я думаю... если я знаю или могу учиться где-то еще : так почему же мы говорим здесь об этом?
Я уже записал здесь, чтобы учиться...
Поэтому, пожалуйста, если вы не ответите о том, как кодировать или как я могу решить проблему с кодами excat.. Не записывайте мой вопрос.. Спасибо
Richard MacCutchan
Вы не можете изучать язык программирования, публикуя здесь вопросы. Вы должны изучить его в деталях, прежде чем даже думать о написании кода.
И ответ, который вы ищете, это что-то вроде следующего:
foreach($folder as $name) { $sql = "INSERT INTO folder (folder_name) VALUES ('$name') "; if(mysqli_query($connect, $sql)) { // so if the sql call succeeds, you need to do something with the data } else { // and if it fails - then what? } } // and this is the end of the foreach
Haluk Aydogan
Спасибо.. И вы можете поверить в это, я пытаюсь научиться кодированию, но не по книге. Мой стиль именно такой:
Мне нужно что-то, что я знаю, что буду делать...а теперь исследую интернет о том, как я могу это сделать...
таким образом, я учусь, когда делаю то, что мне нужно.
Я спрашиваю только тогда, когда действительно не могу этого сделать, если вы это видите: это мой первый вопрос... Но я сделал то что мне нужно половина из них
Richard MacCutchan
И, вероятно, самый худший способ сделать это. Если вы не понимаете полный язык, вы полагаетесь на код, который мог бы быть написан кем угодно, кто не может полностью понять, что они делают.
Haluk Aydogan
Да, я думаю, что вы правы... Может быть, и то и другое нужно .. Сначала попробуйте сделать что-то из интернета, а потом я думаю, что должен прочитать книгу. поэтому, когда я читаю книгу, я могу понять больше... вы действительно правы.
Richard Deeming
$sql = "INSERT INTO folder (folder_name) VALUES ('$name') ";
Ваш код почти наверняка уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]
Haluk Aydogan
Прежде всего, спасибо... Во-вторых, не могли бы вы четко записать, чего я не должен делать и что я должен делать?
Richard Deeming
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]
PHP: mysqli::подготовка[^]
РНР: mysqli_stmt::bind_param[^]
$connect = mysqli_connect("localhost", "root", "Pasword", "folder"); $stmt = $mysqli_prepare("INSERT INTO folder (folder_name) VALUES (?)"); mysqli_stmt_bind_param($stmt, 's', $folder_name); $folder = array_filter(glob('aaa/*'), 'is_dir'); foreach($folder as $name) { $folder_name = $name; mysqli_stmt_execute($stmt); }