Updating data in a Database

You want to update data in a database.

Use UPDATE to modify the data in the table. It sets the column equal to the value entered. Only the record whose, the primary key is specified, is updated.

UPDATE table_name SET column_name=new_value WHERE column_name=some_value;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN" lang="EN">
<head>
<title>Deleting Data in a Database</title>
<meta Name="Author" Content="Hann So">
</head>
<body>
<p>
<?php

if (isset($_POST['submit'])) {
		process_form();
	}
	else {
		if (isset($_GET['id'])) {
			$id = $_GET['id'];
		}
		display_form($id);// display form for the first time
	}

function display_form($id) {
	echo <<<HTML
	<h2>Deleting Data in a Database</h2>
	<form action = "$_SERVER[SCRIPT_NAME]" method="post">
	Username:
	<input type="text" name="username" size="50" value="hann" />
	<br />
	Password:
	<input type="password" name="password" size="50" />
	<br />
	Database name:
	<input type="text" name="db" size="50" value="hann_db" />
	<br />
	Table name:
	<input type="text" name="table" size="50" value="blog_entries" />
	<br />
	blog_id:
	<input type="text" name="blog_id" size="50" value="$id" />
	<br />
	Title:
	<input type="text" name="title" size="50" value="New blog" />
	<br />
	Entry Text:
	<textarea name="entry" cols="40" rows="5">This is my new blog</textarea>
	<br />
	<input type="submit" name="submit" value="Submit" />
	</form>
HTML;
}

function process_form() {

	DEFINE ('DB_HOST', "localhost");
	DEFINE ('DB_USER', "$_POST[username]");
	DEFINE ('DB_PASSWORD', "$_POST[password]");
	DEFINE ('DB_NAME', "$_POST[db]");
	DEFINE ('TABLE_NAME', "$_POST[table]");

	$blog_id = stripslashes(trim($_POST[blog_id]));
	$title = stripslashes(trim($_POST[title]));
	$entry = stripslashes(trim($_POST[entry]));


	echo "<p>Opening the connection to the database server.</p>";
	if ($link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)) {
		echo "<p>The connection worked. The link is $link</p>";

		// select a database
		if (@mysql_select_db(DB_NAME)) {
			echo "<P>The database ", DB_NAME, " has been selected.</p>";
		}
		else {
			die ("<p>Could not select the database because: ". mysql_error(). "</p>");
		}

		// define the query
		$query = "UPDATE " . TABLE_NAME . " SET title='{$title}', entry='{$entry}' WHERE blog_id=$blog_id";
		// run the query
		$r = mysql_query($query);
		// report on the result
		// mysql_affected_rows gets the number of rows affected by the previous MySQL operation.
		// if one row is affected then return true.
		if (mysql_affected_rows()==1) {
			echo "<p>The blog entry has been updated.</p>";
			// close the connection
			mysql_close($link);
		}
		else {
			die ("<p>Could not update the entry because: ". mysql_error(). "</p>");
		}
	}
	else {
		die ("<p>Could not connect to MySQL because: ". mysql_error(). "</p>");
	}
	echo "<p><a href=\"$_SERVER[SCRIPT_NAME]\">Try again?</a></p>\n";
	echo "<p><a href=\"example_r.php\">Retrieve data?</a></p>\n";

}

?>
</p>
</body>
</html>

View the effect


PHP and MySQL | Introduction | SQL Commands | Connect to MySQL | Creating and Selecting a Database | Creating a Table | Inserting Data into a Database | Retrieving Data from a Database | Updating data in a Database | Deleting Data in a Database
© 2008: Hann So
email: hso@voyager.deanza.edu