2013-03-10 55 views
1

我有以下簡單的形式在PHP代碼報告任何錯誤但沒有數據進入數據庫

簡單的形式

試車FORM

<form method=post action='android.php'> 
    firstname:<input type='text' name='firstname'/><br> 
    secondname:<input type='text' name='secondname'/><br> 
    email:<input type='text' name='email'/><br> 
    password<input type='text' name='password'/><br> 
    <input type=submit name='submit' value='chekiii'/><br> 
    </form> 
    </body> 

php文件是但是它並沒有向數據庫中輸入任何數據,也沒有顯示錯誤......事實上,它在解析錯誤代碼後迴應出'成功'消息。

<?php 
$con = mysql_connect("www.######.com","#####","######"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("android", $con); 
if ($_POST[submit]) 
{ 
$sql=mysql_query("INSERT INTO magic (firstname,secondname,email,password) 
VALUES 
('$_POST[firstname]','$_POST[secondname]','$_POST[email]','$_POST[password]')"); 

if (mysql_query(!$sql,$con)) 
{ 
    die('Error: ' . mysql_error()); 
} 
echo "success"; 
mysql_close($con);} 
?> 

我可能會犯什麼錯誤?

回答

0

您是否嘗試過回顯$ sql查詢,然後手動將其添加到數據庫?這可能會給你一個錯誤,你可以使用。我注意到的一件事是,您的$ _POST變量沒有引號:即使用$_POST['firstname']而不是$_POST[firstname]

哦,請加在userinput一些檢查,你去住這種形式之前...

0

這不會工作

$sql=mysql_query("INSERT INTO magic (firstname,secondname,email,password) 
VALUES ('$_POST[firstname]','$_POST[secondname]','$_POST[email]','$_POST[password]')"); 

使用本

"INSERT INTO magic (firstname,secondname,email,password) 
VALUES ('".$_POST['firstname']."','".$_POST['secondname']."','".$_POST['email']."','".$_POST['password']."')" 

也會改變該:

if (mysql_query(!$sql,$con)){ 
    die('Error: ' . mysql_error()); 
} 

if (!mysql_query($sql,$con)){ 
    die('Error: ' . mysql_error()); 
} 

你有錯誤,在你的代碼

<?php 
$con = mysql_connect("www.######.com","#####","######"); 
if (!$con){ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("android", $con); 
if ($_POST['submit']){ //$_POST['submit'] NOT $_POST[submit] 
$sql=mysql_query("INSERT INTO magic (firstname,secondname,email,password) 
    VALUES ('".$_POST['firstname']."','".$_POST['secondname']."','".$_POST['email']."','".$_POST['password']."')"); 

if (mysql_query(!$sql,$con)){ 
    die('Error: ' . mysql_error()); 
} 

echo "success"; 
mysql_close($con); 
} 
0

當你通過你的$ _ POST變量到你的查詢字符串您誤差。

首先,您需要需要在將數據引入查詢之前對其進行清理,或者您對SQL注入攻擊持開放態度。

其次,修復錯誤,在你的$ _POST變量周圍加上{},這樣它們可以用雙引號字符串進行評估。您還在$ _POST變量中缺少單引號。

$sql=mysql_query("INSERT INTO magic (firstname,secondname,email,password) 
    VALUES 
    ('{$_POST['firstname']}','{$_POST['secondname']}','{$_POST['email']}','{$_POST['password']}')"); 

請參閱php variables文檔以獲取進一步說明。

0

請,不使用過時的代碼:

$con = mysqli_connect(.....); 
mysqli_select_db(...); 
mysqli_query($con,...); 
and to every $_POST mysqli_real_escape_string($con,....); 
0

的問題是與文獻數據庫。由於我的主機安裝了CPANEL,我還沒有意識到有數據庫命名前綴,我不知道它是一個noob(仍然是)。感謝大家。仍在學習。

相關問題