2013-11-15 82 views
0

我已经在Ubuntu上安装灯,一切工作正常,我试图localhost/testphp()工作正常,但是当我把它的代码显示值,如果我回应他们,但它并没有插入他们的数据库,它不给错误的MySQL连接。使用POST方法发送表单数据MySQL连接不工作Ubuntu?

<form action="form.php" method="POST"> 

     <label>Email:</label> 
     <input type="text" name="name"> 
     <label>Password</label> 
     <input type="password" name="pass"> 
     </form> 

这里 是PHP代码

<?php 

ini_set('display_errors',1); 
error_reporting(E_ALL); 

echo "hello I am here !<br/>"; 


$con=mysqli_connect("localhost","root","123","login"); 

if (mysqli_connect_errno($con)) 
    { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 

    } 



$name = $_POST['name']; 
$password = $_POST['pass']; 
echo " Name: ".$name." <br/>Password: ".$password; 
mysqli_query($con,"INSERT INTO login_data (username, password) VALUES ('". $name ."', '". $password ."')"); 
//it doesnt insert the data 
//how do i check the error of that query ? 
mysqli_close($con); 
?> 

帮助!

+0

尝试添加'的error_reporting(E_ALL);'在顶部,这样你会得到错误的page.Or'退出( “这里”)。 –

+0

您在'$ sql'声明中有语法错误。添加'ini_set('display_errors',1); error_reporting(E_ALL);'到脚本的顶部找出原因。 –

+0

我添加了'ini_set('display_errors',1);''和'error_reporting(E_ALL);'在脚本的顶部,仍然是相同的 – Waqas

回答

3
$sql="INSERT INTO login_data(username,password) values(".$_POST['name'].",".$_POST['password'].")"; 

mysqli_query(mysqli $link , string $query

首先连接,然后该查询。通过线`线;而使用mysqli

$a=mysqli_query($con, $sql);

1

首先,您可以启用PHP错误与你的php.ini用:

display_errors = on

或使用.htaccess文件。

然后,SQL可能是:

$sql = "INSERT INTO login_data(username, password) VALUES ('". $name ."', '". $password ."')";

正如唐说,你使用的mysqli和那么MySQL。你必须使用mysqli_query();

+0

我打开了'display_errors = on',它现在显示错误, $ sql =“INSERT INTO login_data(username,password)VALUES('”。$ name。“','。。$ password。”')“;'不起作用 – Waqas

+0

显示的错误是什么? – Franck

+0

@RanaMuhammadWaqas你试过没有'''?我的意思是:'$ sql =“INSERT INTO login_data(username,password)VALUES(”。$ name。“,”。$ password。“)”; – Don

0

你的SQL语句是不正确:

$sql="Insert into login_data(username,password) values("$name","$password")"; 

应该

$sql="Insert into login_data(username,password) values("'".$name."'","'".$password."'")"; 

因为$name$password是预定义的,你只需要他们适当的引号传递。

+0

在语句中传递双引号中的值会以不正确的方式终止sql语句。 – NoobEditor

+0

当我把'$ sql =“插入到login_data(用户名,密码)值('$ name','$ password')”;'它给出了错误'你好我在这里 警告:mysql_query()期望参数2是资源,在第23行的/var/www/form.php中给出的对象 [email protected] 123 无法插入数据! '但是当我使用这个'$ sql =“插入到login_data(username,password)values(”'“。$ name。”'“,”'“。$ password。”'“)”;'它不会给出错误并且没有在表 – Waqas

+0

中加入'echo“值:”。$ name。“”。$ password; die();'在插入前检查参数的值。 – NoobEditor