Создание каталога, копирующего в него файлы другого каталога, затем создающего таблицу в phpMyAdmin?

#php #mysql

#php #mysql

Вопрос:

Я пытаюсь создать приложение, в котором можно создать «канал», и мне нужно задаться вопросом, смогу ли я создать это с помощью PHP. Вот мой код.

 <?php

 $conn = mysqli_connect("localhost", "root", "", "channels");

if(isset($_POST['channel_name']) amp;amp; $_POST['channel_name'] != "") {
   $dir = UUID();
   // I think channelname is an error as well.
   $channelname = $_POST['channel_name'];

   mkdir($dir, 0777, true);

   // I know there may be a syntax error in $index   
   $index = fopen($dir. "/index.php", "w");
   fclose($index);
   copy("index.php",$index);

   // Insert values into table
   $q = "INSERT INTO channels (dir, name) VALUES ($dir, $channelname)";
   $query = mysqli_query($conn, $q);
   if($query == true) {
   echo "your channel has been created";
   } else {
   echo "there was an error";
   };
 };

?>
  

Комментарии:

1. Вы бы создали таблицу в своем скрипте, а не в phpmyadmin. С чем у вас проблемы?

2. Я задаюсь вопросом, сработает ли это. Прямо сейчас на моем веб-сайте устанавливаются приложения, такие как phpMyAdmin, поэтому я пока не могу получить к нему доступ.

3. Попробуйте локально без SQL или установите mysql локально. Я имел в виду, что phpmyadmin не нужен, верно? Не уверен, почему эта задержка является рациональной для всех остальных при разборе вашего php.

4. Примечание: Объектно-ориентированный интерфейс к mysqli значительно менее подробный, что упрощает чтение и аудит кода, и его нелегко спутать с устаревшим mysql_query интерфейсом. Прежде чем вы слишком увлекетесь процедурным стилем, стоит переключиться. Пример: $db = new mysqli(…) и $db->prepare("…") процедурный интерфейс — это артефакт эпохи PHP 4, когда был представлен mysqli API, и в идеале его не следует использовать в новом коде.

5. ПРЕДУПРЕЖДЕНИЕ : При использовании mysqli вы должны использовать параметризованные запросы и bind_param добавлять любые данные в свой запрос. НЕ используйте интерполяцию строк или конкатенацию для выполнения этого, потому что вы создали серьезную ошибку SQL-инъекции . НИКОГДА не помещайте $_POST , $_GET или данные любого вида непосредственно в запрос, это может быть очень вредным, если кто-то попытается воспользоваться вашей ошибкой.