#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
или данные любого вида непосредственно в запрос, это может быть очень вредным, если кто-то попытается воспользоваться вашей ошибкой.