Изучение PHP - Нужна помощь Сохранение в MySQL - PullRequest
0 голосов
/ 11 февраля 2019

Я изучаю phpmyadmin, это моя текущая среда обучения / тестирования ниже.
Сегодня я создал первую базу данных, я называю db1, это простая структура с тремя полями ввода.

И одноосновной идентификатор в phpmyadmin.
и одно уникальное структурное поле для имени пользователя.

index.html:

<html>
  <head>
    <title>db1 test</title>
  </head>
  <body>
    <form id="myForm" action="userInfo.php" method="post">
      Username: <input type="text" name="username" /><br />
      Name: <input type="text" name="name" /><br />
      Favourite Number: <input type="text" name="favouritenumber" /><br />
      <button id="sub">Save</button>
    </form>

    <span id="result"></span>

    <script src="/script/jquery-1.8.1.min.js" type="text/javascript"></script>
    <script src="/script/my_script.js" type="text/javascript"></script>
  </body>
</html>

db.php:

<?php    
    $host = "localhost";
    $port = "8889";
    $servername = "$host:$port";
    $username = "forest";
    $password = "";
    $db = "db1";
    // Create connection
    $conn = new mysqli_connect($servername, $username, $password, $db);
    // Check connection
    if ($conn - > connect_error) {
        die("Connection failed: ".$conn - > connect_error);
    }
?>

info.php:

<?php
    include_once "/includes/db1.php";    
    $username = $_POST['username'];
    $name = $_POST['name'];
    $favouritenumber = $_POST['favouritenumber'];
    if(mysqli_query("INSERT INTO user(username,name,favouritenumber) VALUES ('$username', '$name', '$favouritenumber')"))
        echo "Successfully Inserted";
        //echo "<a href='login_success.php'>Back to main page</a>";

    else {
        echo "ERROR not entered";
    }
    // close connection
    mysqli_close();
?>

Я думаю, что моя проблема может быть легко решена, так как она работала, а затем перестала работать, когда я что-то изменил?

Я не уверен, почему вдруг не удается сохранить поля структуры?

Вещи, которые я пробовал:
Я попытался начать заново стретий называется db3, но это показывает ту же ошибку insertion failed, что и db2.
И я также попытался прочитать эту тему

Возможная причина, почему не следует отправлять в mysql db:

что-то, что я должен добавить => это работало до того, как я установил имя пользователя в качестве уникального по структуре, а также я добавил «первичный идентификатор ai» в Strucutre, если это поле первичного идентификатора будет добавленотакже в info.php, даже если он не добавляется пользователем и автоматически добавляется phpmyadmin или не требуется для отправки вышеуказанных полей, так как я думал, что phpmyadmin добавил «uuid ai» после того, как представление достигнет mysql?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

попробуйте это:

<?php
include_once "/includes/db1.php";    
$username = $_POST['username'];
$name = $_POST['name'];
$favouritenumber = $_POST['favouritenumber'];
if(mysqli_query($conn,"INSERT INTO user(username,name,favouritenumber) VALUES ('$username', '$name', '$favouritenumber');"))
    echo "Successfully Inserted";
    //echo "<a href='login_success.php'>Back to main page</a>";

else {
    echo "ERROR not entered";
}
// close connection
mysqli_close();
?>
0 голосов
/ 11 февраля 2019

1)

Если вы подключаетесь с помощью localhost, вам обычно также не требуется ссылка на порт.

$servername = "localhost";
new mysqli_connect($servername, $username, $password, $db);

Ссылка на порт 8889 не является обычным портом localhostдля MySQL, равным 3306.

2)

Вы должны убрать пробелы из вашего объекта Referencer - >:

if ($conn -> connect_error) 

или, чаще всего

if ($conn->connect_error) 

3)

Вы запускаете вставку с if(mysqli_query(, что составляет ПРОЦЕДУРА , но ваша настройка соединения $conn, которая ОБЪЕКТИРУЕТСЯ .

Это разные вещи, они никак не связаны.Объектно-ориентированный гораздо предпочтительнее, поэтому вы должны использовать его повсюду. Пожалуйста, обратитесь к руководству .

Поэтому переписать как:

if(conn->query("Your queryString")){... 

4)

Прочитать Файл журнала ошибок PHP .

5)

НИКОГДА НЕ ДОВЕРЯЙТЕ ДАННЫМ ПОЛЬЗОВАТЕЛЯМ. НАВСЕГДА .Ваш код уязвим для атаки SQL-инъекций .

6)

Еще лучше, использование подготовленных операторов - Вот как


Дополнительные примечания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...