PHP не сохраняет данные в базу данных

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

Итак … Я чувствую, что может быть что-то, что я не указывал при попытке подключиться к базе данных MySQL.

В недавнем учебном пособии, который просто выводит текст из ввода в таблицу в MySQL, я получил сообщение об ошибке, указывающее, что сервер «localhost» не найден. Мой Apache был установлен на порт 60 (а не порт 80 по умолчанию). Поэтому я подумал, что это может быть проблемой. Я попытался добавить localhost:60 в mysqli_connect а не в localhost , и ошибка исчезла!

По-прежнему существует проблема: 1. Навсегда загружать страницу demo.php (см. Код ниже). 2. Данные по- прежнему не добавляются ….

Вот код (я преобразовал его из исходного MySQL в видео, в MySQLi и добавил комментарии):

demo.php:

  <?php define('DB_NAME', 'forms1'); define('DB_USER', 'root'); define('DB_PASSWORD', ''); define('DB_HOST', 'localhost:60'); // stored in a variable to TEST if it's working $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_HOST); // TEST if a link has been established (connection) if (!$link) { die('Could not connect:' . mysqli_error($link)); } // same as above $db_selected = mysqli_select_db($link,DB_NAME); if(!$db_selected) { die('Can\t use ' . DB_NAME . ': ' . mysqli_error($link)); } // Check SUCCESS with commented command below // echo 'Connected successfully.'; // stored in a variable to shorten $value = $_POST['input1']; // stored in a variable to TEST $sql = "INSERT INTO demo (input1) VALUES ('$value')"; if(!mysqli_query($link, $sql)) { die('Error: ' . mysqli_error($link)); } mysqli_close($link); ?> 

демо-form.php:

 <form action="demo.php" method="post" /> <p>Input 1: <input type="text" name="input1" /></p> <input type="submit" value="Submit" /> </form> 

У меня также была такая же проблема с другим кодом, см. Здесь: PHP-база данных не будет сохранять данные

Я очень надеюсь, что кто-то может мне помочь здесь. Жаль, что я еще не получил основы для работы …

Благодаря!

Попробуйте это: (ваш текущий код не работал для меня) HTML-форма и PHP / SQL – все-в-одном.

 <?php DEFINE ('DB_USER', 'xxx'); DEFINE ('DB_PASSWORD', 'xxx'); DEFINE ('DB_HOST', 'xxx'); DEFINE ('DB_NAME', 'xxx'); $link = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die("could not connect"); if(isset($_POST['submit'])){ // stored in a variable to shorten $value = mysqli_real_escape_string($link,$_POST['input1']); // stored in a variable to TEST $sql = "INSERT INTO demo (input1) VALUES ('$value')"; if(!mysqli_query($link, $sql)) { die('Error: ' . mysqli_error($link)); } else { echo "Success"; } } // if(isset($_POST['submit'])) mysqli_close($link); ?> <form action="" method="post" /> <p>Input 1: <input type="text" name="input1" /></p> <input type="submit" name="submit" value="Submit" /> </form> 

MySQL использовал порт 3306 как значение по умолчанию. Подходит ли PHP напрямую к базе данных? Если да, попробуйте сделать свой порт.

Добавили ли вы разрешения для MySQL, чтобы ваше приложение могло подключаться и взаимодействовать с базой данных? Вы должны прочитать о GRANT и разрешениях.

Но комментарий Дагона выше является серьезным: публикация базы данных непосредственно в Интернете должна выполняться только в том случае, если вы готовы украсть, разорвать данные или и то, и другое.