2011-04-18 51 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好友.........