Самый эффективный способ обработки запроса MySQL, только "при отправке"? - PullRequest
0 голосов
/ 28 октября 2011

Я настроил php-форму для вставки данных в мою базу данных и заметил, что запрос будет запускаться по умолчанию при каждом обновлении страницы.Я подумал, что могу просто переместить запрос в его собственный файл, а затем вызвать его «при отправке» ... но это не сработало.какой лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 28 октября 2011

Если ваша форма отправляется на сервер, то

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   ... process the form
}
?>

Проверка наличия поля ввода ненадежна - вы можете изменить имя поля и забыть обновить проверку имени поля. Этот метод на 100% - значение REQUEST_METHOD всегда будет соответствовать тому, как был вызван скрипт.

0 голосов
/ 28 октября 2011

Вот как вы сохраняете этот файл как connection.php. Обратите внимание, что здесь нет скрипта проверки. Это простой пример того, как вставить запись в базу данных с помощью php mysql на той же странице.

Save this file as conn.php
<?php
$hostname_tfc_conn = "servername";
$database_tfc_conn = "connname";
$username_tfc_conn = "dbusernanme";
$password_tfc_conn = "dbpassword";
$tfc_conn = mysql_pconnect($hostname_tfc_conn, $username_tfc_conn, $password_tfc_conn)     or     trigger_error(mysql_error(),E_USER_ERROR); 
?>
Now name the following page as you want

<?php
include_once("conn.php");
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO user (username, password, email) VALUES (%s, %s, %s)",
                  ($_POST['name'], "text"),
                  ($_POST['password'], "text"),
                  ($_POST['email'], "text"));

mysql_select_db($database_tfc_conn, $tfc_conn);
$Result1 = mysql_query($insertSQL, $tfc_conn) or die(mysql_error());

$insertGoTo = "filename.php";//Put you filename here if the record is successful
header("Location: %s", $insertGoTo));
}
?>

<body>
<form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>">
  <p>Name : 
 <input type="text" name="name" id="name" />
 </p>
<p>Email: 
<input type="text" name="email" id="email" />
</p>
<p>Password: 
<input type="text" name="password" id="password" />
</p>
<p>
<input type="submit" name="button" id="button" value="Submit" />
</p>
<input type="hidden" name="MM_insert" value="form1" />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...