2016-04-23 2 views
-8

Мне нужно перенести данные из текстовых полей, созданных в базе данных MySQL в Mysql, используя php. Я много пробовал, но не работал ... так что, наконец, если у кого-то есть рабочий код, то, пожалуйста, дайте мне знать. У меня только два текстовых поля с именем «имя пользователя» и «пароль» и кнопка отправки. Я уже создал db [dbname: userdemo, tablename: users], но никаких результатов. Пожалуйста, используйте концепцию ООП не процедурные. Любая помощь будет оценена!как сохранить данные из текстовых полей в базу данных при нажатии кнопки отправки с помощью php

+0

Что вы пробовали до сих пор, есть ли у вас примеры вашего кода, который вы пробовали? –

+0

'Я пробовал много, но не работал'. Что именно вы пробовали? 'Пожалуйста, используйте концепцию ООП не процедурные. 'это не служба написания кода. – Vincent

+2

* «Пожалуйста, используйте концепцию ООП не процедурные». * - Это довольно порядок. Что-нибудь еще, что вы хотели бы нам сделать, например, косить газон, прогуляться по своей собаке, пойти в супермаркет и забрать свою химчистку? * sigh * –

ответ

0

HTML-код ниже фрагмент, как ваша форма должна выглядеть, если вы уже упоминали вы уже эту часть сделали:

page1.html

<form method="POST" action="page2.php"> 
    <input type="text" name="usernameForm"> 
    <input type="password" name="passwordForm"> 
    <input type="submit" value="Submit"> 
</form> 

код PHP ниже, а затем получает переменные из page1.html после пользователя. Отправляет свою информацию из формы и затем вставляет строку в таблицу в базе данных. При использовании этого кода не забудьте заменить все имена таблиц, столбцы и т. Д. На те, которые у вас есть на вашей форме, а также переменные 4 ********, которые дают ваш код доступа к база данных:

page2.php

//uses MySQL (PDO) 
<?php 
$usernameForm = $_POST['usernameForm']; 
$passwordForm = $_POST['passwordForm']; 

$servername = "********"; 
$username = "********"; 
$password = "********"; 
$myDB = "********"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$myDB", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    echo "Connected successfully"; 

    $sql = "INSERT INTO myTable (username, password) VALUES (:usernameForm, :passwordForm)"; 
    $stmt = $conn->prepare($sql); 
    $stmt->bindParam(':usernameForm', $usernameForm); 
    $stmt->bindParam(':passwordForm', $passwordForm); 
    $stmt->execute(); 

    } 
catch(PDOException $e) 
    { 
    echo "Connection failed: " . $e->getMessage(); 
    } 

$conn = NULL; 
?> 

Отредактировано: После прочтения ваш комментарий желающих иметь весь этот код на одной странице, простой способ сделать это состоит в следующем:

Заменить эту строку:

<form method="POST" action="page2.php"> 

с этой линии:

<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 

Что здесь происходит следующее: PHP код всегда выполняется на сервере. Когда ваш сайт полностью загружен, ваше соединение с сервером прекращается. Какую бы информацию, которую вы отправляете на сервер с помощью тегов <form>...</form>, необходимо установить соединение с сервером, поэтому в общем случае пользователям пользователя две страницы (одна для ввода и другая, которая принимает данные), HOWEVER есть простой и общий способ сохранить весь этот код на одной странице: отправьте <form>...</form>!

Для этого у вас есть 2 варианта:

  1. если ваша страница была названа page1.php, то вы можете просто заменить action="page2.php" с action="page1.php". Однако это вообще не очень хорошее программирование, потому что если по какой-то причине имя вашей страницы меняется, тогда ваш код разбивается, что приводит нас ко второму (и лучшему) варианту.
  2. замена action="page2.php" на action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>". То, что это делает, почти то же самое, что и вариант 1, ОДНАКО, код php внутри action задает супергелбал $ _SERVER для того, что имя страницы, следовательно, предотвращает «разрыв» вашей страницы в случаях, например, при переименовании файла.
+0

@Webeng ... Привет, спасибо за сценарий выше ... это сработало .... !!! – Tjeetu

+0

@Webeng ... Привет за сценарий выше ... это сработало .... !!! Но здесь мы использовали два разных файла page1.html, а также page2.php, что я спрашивал, это запустить его в одном файле php ... я имею в виду форму html, а также php-логику в одном файле .....! Как это сделать (но используя $ conn = new mysqli ($ servername, $ username, $ password, $ dbname), строка подключения, а не «PDO») – Tjeetu

+0

@ user3205084 Привет! Я отредактировал свой ответ, в том числе, как иметь код в одном файле, однако я не изменил часть PDO по двум причинам. 1, потому что это единственный стиль MySQL, которого я знаю достаточно, чтобы сделать достаточно хороший код :), и 2, потому что это самая рекомендуемая форма MySQL из-за функциональности в целом, поэтому всякий раз, когда у меня есть такая возможность, я склонен рекомендовать использовать PDO над другими стилями MySQL. – Webeng

Смежные вопросы