2012-12-20 48 views
-1

嗨,大家好我有一個問題,當向數據庫添加表單數據。由於某些原因未插入數據。這裏是我的代碼:將表單數據插入MySQL數據庫

<?php include_once 'secure/connect.php'; ?> 
<?php 
$name = "Your Name"; 
$email = "Your Best Email"; 
$msg_to_user = ""; 
if ($_POST['name'] != ""){ 
    //Be sure to filter this data to deter SQL injection 
    $name = $_POST['name']; 
    $name = stripslashes($name); 
    $name = strip_tags($name); 

    $email = $_POST['email']; 
    $email = stripslashes($email); 
    $email = strip_tags($email); 

    $sql = mysql_query("SELECT * FROM newsletter WHERE email='$email'"); 
    $numRows = mysql_num_rows($sql); 
    if(!$email){ 
     $msg_to_user = '<h4><font color="FF0000">Please Type an email address ' . $name . '</font></h4>'; 
    } else if ($numRows > 0) { 
     $msg_to_user = '<h4><font color="FF0000">' . $email . ' is already in our system</font></h4>'; 
    } else { 
     $sql_insert = mysql_query("INSERT INTO newsletter (name, email, dateTime) VALUES ('$name', '$email', now())") or die (mysql_error()); 
     $msg_to_user = '<h4><font color="0066FF">Thanks' . $name . ', You have been added successfully</font></h4>'; 
     $name = ""; 
     $email = ""; 
    } 
} 
?> 

而且我的HTML形式如下:

<div class="topForm"> 
<H3 style="text-align:center">SIGN UP FOR OUR NEWSLETTER</H3> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<input type="text" name="name" value="<?php echo $name; ?>"/> 
<input type="text" name="email" value="<?php echo $email; ?>"/><br/> 
<input name="mySubmitBtn" type="submit" value="SUBMIT"> 
<?php echo $msg_to_user; ?> 
</form> 
</div> 

提前感謝所有 菲利普

這就是我現在並沒有什麼仍然是工作。 ...

<?php 
$name = "Your Name"; 
$email = "Your Best Email"; 
$msg_to_user = ""; 
if ($_POST['name'] != ""){ 

    include_once 'secure/connect.php'; 

    //Be sure to filter this data to deter SQL injection 
    $name = $_POST['name']; 
    $name = stripslashes($name); 
    $name = strip_tags($name); 

    $email = $_POST['email']; 
    $email = stripslashes($email); 
    $email = strip_tags($email); 

    $sql = mysql_query("SELECT * FROM newsletter WHERE email='$email'"); 
    $numRows = mysql_num_rows($sql); 
    if(!$email){ 
     $msg_to_user = '<h4><font color="FF0000">Please Type an email address ' . $name . '</font></h4>'; 
    } else if ($numRows > 0) { 
     $msg_to_user = '<h4><font color="FF0000">' . $email . ' is already in our system</font></h4>'; 
    } else { 
     $sql_insert = mysql_query("INSERT INTO newsletter (name, email) VALUES ('".$name."', '".$email."')") or die (mysql_error()); 
     $msg_to_user = '<h4><font color="0066FF">Thanks' . $name . ', You have been added successfully</font></h4>'; 
     $name = ""; 
     $email = ""; 
    } 
} 
?> 
+2

而你得到的錯誤是...... ??? –

+0

您應該嘗試回顯'$ sql_insert'的結果 - 您還會以錯誤的順序清理數據,剝離默認字符串的斜線,然後用用戶輸入填充它。 –

+0

當我嘗試向我的表單中添加信息時,它沒有向數據庫中添加任何內容Salman –

回答

1

不考慮其他錯誤或不一致。也讓我注意到你應該使用mysqli或者pdo。但PHP使用time()

$sql_insert = mysql_query(" 
          INSERT INTO newsletter 
          (name, email, dateTime) 
          VALUES 
          ('$name', '$email', ".time().") 
         "); 

,或者如果你想有一個日期時間,而不是時間戳可以使用date()功能。

0
  1. 確保您已連接到數據庫!看看echo mysql_error();

  2. 如果表單提交,趕了值,然後消毒

  3. 插入查詢

PS:看看下面的操作:

if(isset($_POST['name']) ... 

echo mysql_insert_id(); 

time() not now() 

查看id插入的新數據

你的代碼,應該工作,如果你按照這些步驟,並且如果你連接到數據庫

1

你必須從你的代碼更改now()。並使用以下代碼。

$time = time() ; 
$sql_insert = mysql_query("INSERT INTO newsletter (name, email, dateTime) VALUES ('".$name."', '".$email."', '".$time."')") or die (mysql_error()); 
+0

我擺脫了整個dateTime的事情,因爲我真的不需要它,但它仍然不工作的原因!上面留下了一個修改。感謝您的幫助 –