Я новичок в PHP, и я следую руководству, которое получает информацию из таблицы базы данных mySQL по строке и выводит форму для создания новых строк таблицы. Почему-то я не могу понять, что не так с моим кодом? Страница пуста, когда я обновляю страницу, и я всегда смотрел на этот код. Кто-нибудь знает, что я делаю неправильно? Соединение с базой данных отлично, поскольку оно используется на другой странице, и я проверил.Как отправить данные в базу данных mySQL через форму PHP?
База данных mySQL, которую я имею, чрезвычайно проста: 1 таблица называется пользователем, которая имеет 5 столбцов (идентификатор, имя пользователя, firstName, lastName, title), причем идентификатор является уникальным полем.
<?php // sqltest.php
require_once 'login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database, $db_server)
or die("Unable to select database: " . mysql_error());
if (isset($_POST['delete']) && isset($_POST['ID']))
{
$id = get_post('ID');
$query = "DELETE FROM users WHERE ID='$id'";
if (!mysql_query($query, $db_server))
echo "DELETE failed: $query<br>" .
mysql_error() . "<br><br>";
}
if (isset($_POST['ID']) &&
isset($_POST['username']) &&
isset($_POST['firstName']) &&
isset($_POST['lastName']) &&
isset($_POST['title']))
{
$id = get_post('ID');
$username = get_post('username');
$firstName = get_post('firstName');
$lastName = get_post('lastName');
$title = get_post('title');
$query = "INSERT INTO users VALUES" .
"('$id', '$username', '$firstName', '$lastName', '$title')";
if (!mysql_query($query, $db_server))
echo "INSERT failed: $query<br>" .
mysql_error() . "<br><br>";
}
echo <<<_END
<form action="sqltest.php" method="post"><pre>
ID <input type="text" name="ID">
username <input type="text" name="username">
firstName <input type="text" name="firstName">
lastName <input type="text" name="lastName">
title <input type="text" name="title">
<input type="submit" value="ADD RECORD">
</pre></form>
_END;
$query = "SELECT * FROM users";
$result = mysql_query($query);
if (!$result) die ("Database access failed: " . mysql_error());
$rows = mysql_num_rows($result);
for ($j = 0 ; $j < $rows ; ++$j)
{
$row = mysql_fetch_row($result);
echo <<<_END
<pre>
ID $row[0]
username $row[1]
firstName $row[2]
lastName $row[3]
title $row[4]
</pre>
<form action="sqltest.php" method="post">
<input type="hidden" name="delete" value="yes">
<input type="hidden" name="title" value="$row[4]">
<input type="submit" value="DELETE RECORD"></form>
_END;
}
mysql_close($db_server);
function get_post($var)
{
return mysql_real_escape_string($_POST[$var]);
}
Любая помощь будет супер-потрясающей!
Этот учебник скорее из даты – Strawberry
Примечание: Этот код уязвим для SQL-инъекций. Вы также не должны использовать устаревшую 'mysql'-lib. Вместо этого используйте 'mysqli' или' PDO'. – AbcAeffchen