2011-04-18 76 views
0

有人可以查看我的代碼並讓我知道它有什麼問題嗎?連接Php,html和mysql

我遇到的問題是,當我輸入3個字段的文本並點擊提交時,它不會插入到我的數據庫(mysql,以phpmyadmin作爲gui)。沒有錯誤信息或任何東西;它只是不插入數據。我已經查看了一遍又一遍的代碼,我不能指出它有什麼不對。

//---------------------------This is my index.php------------------------------ 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Web Bar Title</title> 
<link rel="stylesheet" href="styles.css" type="text/css" /> 
</head> 
<body> 


<?php 
if(isset($_POST['Submit'])) 
{ 
    include 'connectdb.php'; 
    include 'openconnection.php'; 

    $first = $_POST['first']; 
    $second = $_POST['second']; 
    $third = $_POST['third']; 

    $query = "INSERT INTO details (first, last, third) VALUES('$first','$second','$third');"; 
    mysql_query($query) or die('Error, insert query failed'); 
} 
?> 

     <div id="page"> 

      <tbody> 
      <form method="post"> 
       <table> 
       <tr> 
       <td ><b>First</b></td> 
       <td><input name="first" type="text" id="first"></td> 
       <tr> 
       <tr> 
       <td ><b>Second</b></td> 
       <td><input name="second" type="text" id="second"></td> 
       <tr> 
       <td ><b>Company</b></td> 
       <td><input name="third" type="text" id="third" > </td> 
       </tr> 
       </table> 
      <input name="submit" type="submit" id="submit" value="Submit" /> 
      </form> 
      </body> 
      </html> 
      </tbody> 

     </div> 

//---------------------------------connectdb.php------------------------------------------ 
<?php 
$dbhost = 'localhost'; 
$dbuser = 'sharkk'; 
$dbpass = 'pw'; 
$dbname = 'test'; 
?> 

//---------------------------------openconnection.php------------------------------------- 
<?php 
$dbhost = 'localhost'; 
$dbuser = 'sharkk'; 
$dbpass = 'pw'; 
$dbname = 'test'; 
?> 

<?php 
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 
mysql_select_db($dbname) or die ('No Selection of Database'); 
?> 

編輯:它會更容易和更快的通過MSN/AIM /蒸汽/ Skype的溝通,如果任何人有任何這些!

+0

它再次顯示頁面? – shevski 2011-04-18 07:35:37

+1

寫上頁面'error_reporting(E_ALL); ini_set('display_errors','on');'並看到錯誤 – diEcho 2011-04-18 07:41:00

+0

把'die($ query)'放在你建立查詢的區域下面並告訴我們會發生什麼 – JohnP 2011-04-18 07:51:15

回答

2

您的頂線更改爲

if(isset($_POST['submit'])) { 

我不記得,如果它是區分大小寫或不

+0

這裏還是一種新的,idk如何引用: <...但我試圖改變這種情況,而且仍然是同樣的事情。 – Two 2011-04-18 07:42:55

+0

閱讀此:http://the-echoplex.net/log/php-case-sensitivity – diEcho 2011-04-18 07:44:55

-1

嘗試把雙引號代替單引號

VALUES("$first","$second","$third") 
+0

爲什麼會這樣做? – Ben 2011-04-18 07:47:07

+0

我已將它更改爲'(「$ first」,「$ second」,「$ third」);「;',仍然相同 – Two 2011-04-18 07:53:12

+0

-1如果這些值包含未轉義單引號字符,但在這種情況下,建議轉義它們而不是改變查詢的引用風格會更好。 – Spudley 2011-04-18 08:00:36

1

之間的值最好還是改成

if($_SERVER['REQUEST_METHOD'] == 'POST') 

提交按鈕上的isset()方法不可靠,因爲如果用戶按Enter鍵提交表單,Internet Explorer將不會將提交按鈕作爲後置變量發送,因此您的代碼將無法檢測到表單提交。

0

只需在您自己的MySQL平臺上查詢MYSQL INSERT查詢,只需複製INSERT查詢並粘貼到您的MySQL數據庫中,然後在那裏查看。它會報告你的錯。

如果我是對的,那麼你的問題在於你的INSERT查詢部分。您已經指出:

$query = "INSERT INTO details (first, last, third) VALUES('$first','$second','$third');"; 

在上面的部分,不應該有2個分號,只求一個就足夠了...它西港島線的樣子:

$query = "INSERT INTO details (first, last, third) VALUES('$first','$second','$third')"; 

此外,檢查烏爾包括部分太...

它不應該是:

include 'connectdb.php'; //braces r missing 
include 'openconnection.php'; // braces r missing 

它應該是:

include ('connectdb.php'); 
include ('openconnection.php'); 

我希望這可以做的好發ü....

CHEERS好友.........