i need connect html form sql database , i'm starting out simple form can understand how works. can't figure out doing wrong. have form created, php script, , database created. whenever submit form takes me blank page , nothing has been added database. i've written error messages if connections fail i'm not seeing either. i'm not advanced in programming can please me?
index1.html
<html> <body> <form action="info.php" method="post"> <p>username:<input type="text" name="username" /></p> <p>email:<input type="text" name="email" /></p> <input type="submit" value="submit"/> </form> </body> </html>
info.php
<?php define('db_name' , 'users' ); define('db_user' , 'root'); define('db_password' , ''); define('db_host' , 'localhost'); $link = mysql_connect(db_host, db_user, db_password); //connection host if (!$link) { die('could not connect: ' . mysql_error()); } //error if not connected host $db_selected = mysql_select_db(db_name, $link); //select database if(!$db_selected){ die('can\'t use ' . db_name . ':' . mysql_error()); } echo 'connected successfully'; $value = $_post['username']; $value2 = $_post['email']; $sql = "insert guests (username, email) values ('$value', '$value2')"; if(!mysql_query($sql)){ die('error: ' . mysql_error()); } //error check see if connected tables mysql_close(); //close connection ?>
as stated in comments; mysql_
code checks out, chances need use either mysqli_
or pdo, since mysql_
functions may not available use.
if following mysqli_
rewrite not work you, problem goes deeper , out of scope of question.
using error reporting will/should confirm that. consult "footnotes" on how use in php file(s).
<?php define('db_name' , 'users' ); define('db_user' , 'root'); define('db_password' , ''); define('db_host' , 'localhost'); $link = mysqli_connect(db_host, db_user, db_password, db_name); //connection host if (!$link) { die('could not connect: ' . mysqli_error($link)); } echo 'connected successfully'; $value = mysqli_real_escape_string($link,$_post['username']); $value2 = mysqli_real_escape_string($link,$_post['email']); $sql = "insert guests (username, email) values ('$value', '$value2')"; if(!mysqli_query($link, $sql)){ die('error: ' . mysqli_error($link)); } //error check see if connected tables else{ echo "data entered"; } mysqli_close($link); //close connection ?>
references:
- mysqli: http://php.net/manual/en/book.mysqli.php
- pdo: http://php.net/manual/en/ref.pdo-mysql.php
- error reporting: http://php.net/manual/en/function.error-reporting.php
footnotes:
add error reporting top of file(s) find errors.
<?php error_reporting(e_all); ini_set('display_errors', 1); // rest of code
sidenote: error reporting should done in staging, , never production.
make sure server running , configured php/mysql/apache.
make sure columns indeed
varchar
, long enough accommodate data.