2015-10-20 52 views
-1

我試圖讓我的代碼中的PHP將用戶輸入(或至少輸入它)到我的MySQL數據庫。我的代碼中也有JavaScript和HTML,但做得並不好,但我現在並不擔心,因爲我確信我可以在以後修復它。我想用PHP訪問MySQL數據庫,所以用戶可以輸入到我的數據庫

我的代碼的最終目的是在文本框(HTML部分)和PHP中輸入一個輸入並在我的數據庫中爲id,forename和surname創建一個字段。我將來會提高效率,但我希望它現在能夠正常工作。

我在我的實際代碼中填寫了服務器名稱,用戶名,密碼和DBname。

我是很新的HTML/JavaScript的/ PHP的編碼,所以我歡迎批評:)感謝您的幫助

這裏是我的代碼:

<?php 

$servername = ""; 
$username = ""; 
$password = ""; 
$dbname = ""; 

// Create connection 
$conn = new MySQLi($servername, $username, $password, $dbname); // $conn = MySQLi($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

mysql_select_db('firstdb', $con) // $mysql_select_db('firstdb', $con) 
// include_once("addFieldsHTML.php"); 

$u_id =$_POST['id']; 
$u_forename =$_POST['forename']; 
$u_surname =$_POST['surname']; 

if(mysqli_query("INSERT INTO firstdb (id,forename,surname) VALUES ('$id','$forename','$surname')")) 
    echo"successfully inserted"; 
else 
    echo "failed"; 

$conn->close(); 
?> 

<html> 
<head> 

<!-- HTML --> 

    <script> 
    $("#submit").click(function(){ 

    $.post($("#myform").attr("action"), $("#myform:input").serializeArray(), function(info){$("#result").html(info);}); 
    }); 

    $("#myform").submit(function(){ 
     return false; 
    }); 
    </script> 

<body> 

<title> Input into the Datatabase </title> 

    <form id="myForm" action = "AddFieldsHTML.php" method="post"> 
    ID: <br> <input type="text" name="ID"> <br> 
    Forename: <br> <input type="text" name="Forename"> <br> 
    Surname: <br> <input type="text" name="Surname"> <br> 
    <button id="submit"> Save </button> 
    </form> 

    <span id="result"></span> 

</body> 
</html> 
+0

你得到什麼錯誤,實際變量?另外,'$ _POST'區分大小寫,因此要麼將name =「Forename」改爲'name =「forename」',要麼將其更改爲獲取'$ _POST'值的位置(對於forename和surname) - I 'd強烈建議你看看[旅遊](http://stackoverflow.com/tour) – Epodax

+0

具體問題是什麼?這不是http://codereview.stackexchange.com/ – MrWhite

+3

非常明顯的語法錯誤。未定義的索引/變量*等等等等等等。學習如何進行調試,你將會走上成功之路。 –

回答

1

如果這不是明擺着給你,您使用的查詢語句中不存在的變量。

你也混合mysqli proceural和麪向對象技術。由於某些未知原因,在中間還使用了一個mysql_數據庫擴展調用。

您也正在爲您的HTML - > $ _ POST變量名稱使用不正確的字母大小寫。

您將數據從$_POST移入局部變量,併爲$ _POST變量使用錯誤的名稱。

所以改變它像這樣,使用您已經創建

// Create connection 
$conn = new MySQLi($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

// REMOVE as you are no longer using mysql_ 
//mysql_select_db('firstdb', $con) // $mysql_select_db('firstdb', $con) 

// Correct the leter case of $_POST variables to match the HTML name= 
$u_id =$_POST['ID']; 
$u_forename =$_POST['Forename']; 
$u_surname =$_POST['Surname']; 

// use correct variable names in query 
$sql = "INSERT INTO firstdb (id,forename,surname) 
      VALUES ('$u_id','$u_forename','$u_surname')"; 

$result = $conn->query($sql); 
if (! $result) { 
    echo $conn->error; 
    exit; 
} 
echo"successfully inserted"; 

$conn->close(); 
?> 
+0

仔細檢查輸入Smokey ;-) ID-Forename-Surname。 (信箱) –

+0

謝謝@弗雷德 - ii-它實際上比我們兩個人最初都注意到更差 – RiggsFolly

+0

歡迎Smokey ;-) –

相關問題