Актуализирането на данните може да бъде доста лесно. Нека започнем с формуляр, като за начало:
<form method="post" action="submit.php">
<input type="text" name="id" value="12" />
<input type="text" name="value" value="Jonathan" />
<input type="submit" />
</form>
Този формуляр ще изпрати данните до нашия submit.php
скрипт, където можем да го обработваме, и да го предадем в нашата база данни. Тъй като нашият метод на формуляра е „публикуване“, всички наши стойности ще бъдат изпратени чрез POST
супер масив в PHP (това не е така, ако използвате програми за качване на файлове). Така че в нашия submit.php
страница, можем да отпечатаме стойностите на идентификатора и стойността по следния начин:
print $_POST["id"]; // the name of the HTML element is the key
print $_POST["value"]; // again, note that we use the name as the key
Ще искате да внимавате да предавате стойности, изпратени от потребителя директно във вашите заявки, така че е хубаво да почистите данните с помощта на функция като mysql_real_escape_string()
:
$id = mysql_real_escape_string( $_POST["id"] );
$value = mysql_real_escape_string( $_POST["value"] );
Следващото нещо, което ще искаме да направим, е да ги поставим в заявка:
$sql = "UPDATE mytable SET value = '{$value}' WHERE id = {$id}";
Това е добър момент да не казвам, че не ви насърчавам да използвате този примерен код в жива среда. Ще искате да потърсите sql-инжекциите и как да ги избегнете. Кодът, който предоставям тук, е само пример. След като нашите стойности бъдат въведени, заявката, която ще бъде изпълнена, всъщност изглежда така:
UPDATE mytable SET value = 'Jonathan' WHERE id = 12
Сега, за да изпълним това, трябва да сме свързани с база данни.
$host = "localhost";
$user = "root";
$pass = "";
$database = "myDatabase";
$conn = mysql_connect($host, $user, $pass) or die( mysql_error() );
mysql_select_db($database) or die( mysql_error() );
Всичко, което правим тук, е да съхраняваме идентификационните данни на mysql-user-account в масиви и да ги предаваме във функция за свързване. Този код трябва да е доста ясен, но ме уведомете, ако изобщо е неясен.
След като го получите, сте готови да изпълните заявката си. Не забравяйте, че го съхранявахме в масив, наречен $sql
:
$result = mysql_query( $sql ) or die( mysql_error() );
Това е. Направи го! Данните, ако приемем, че нищо не се е объркало, вече се актуализират във вашата база данни. Има много начини, по които можете да увеличите предоставената информация обратно на потребителя чрез този скрипт. Също така си струва да се отбележи, че ще искате да дезинфекцирате данните си, преди дори да позволите на скрипта да се изпълнява – ако данните не са приемливи (някой се опитва да инжектира свои собствени заявки), ще искате да ги изплюете обратно.
Вижте MySQL функциите в документацията на PHP за още екстри и не забравяйте да се върнете тук, когато имате по-конкретни въпроси!