Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There is a lot going on here.</p> <ol> <li><p>Always us a integer as a primary key, example: id MEDIUMINT NOT NULL AUTO_INCREMENT. Then make it the primary key.</p></li> <li><p>you need to sanitize your input to the database using <code>mysql_real_escape_string()</code></p></li> <li><p>you need to concatenate your query, so it should look like this:</p> <p>mysql_query("UPDATE user SET username = '".mysql_real_escape_string($_POST[nusername])."' SET password = '".mysql_real_escape_string($_POST[npassword])."' SET name = '".mysql_real_escape_string($_POST[nname])."' SET surname = '".mysql_real_escape_string($_POST[nsurname])."' SET role = '".mysql_real_escape_string($_POST[nrole])."' WHERE username='".mysql_real_escape_string($_POST[us])."'");</p></li> </ol> <p>Here is corrected code:</p> <pre><code> &lt;?php $hostname = "localhost"; $database = "mydb"; $username = "myuser"; $password = "mypsw"; $link = mysql_connect( $hostname , $username , $password ) or die("Prosoxi!Provlima stin sundesi me ton server : " . mysql_error()); mysql_select_db($database,$link); mysql_query("UPDATE user SET username = '".mysql_real_escape_string($_POST['nusername'])."', SET password = '".mysql_real_escape_string($_POST['npassword'])."', SET name = '".mysql_real_escape_string($_POST['nname'])."', SET surname = '".mysql_real_escape_string($_POST['nsurname'])."', SET role = '".mysql_real_escape_string($_POST['nrole'])."' WHERE username='".mysql_real_escape_string($_POST['us'])."'"); mysql_close($link); header("Location: users.php"); ?&gt; </code></pre> <p>notice the single quote surrounding the _POST var, $_POST['nusername'] you had $_POST[nusername]. </p> <p>Try it now, and see if it updates. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload