2012-10-16 150 views
-2

我是web開發中的新手。我正在檢查如何使用PHP將數據從表單更新到服務器中的數據庫。我似乎能夠連接到數據庫,但無法更新數據。無法使用PHP在MySQL數據庫中插入數據

窗體的HTML:

<html> 
<head> 
    <title>Experiment with php and db</title> 
</head> 

<body> 
    <form name="form1" id="form1" method="post" action="formact.php"> 
    <p><input type="text" name="fname" placeholder="first name"/></p> 
    <p><input type="text" name="lname" placeholder="last name"/></p> 
    <p><textarea name="words" placeholder="Enter what you think"></textarea></p> 
    <p><button type="submit"></button></p> 
    </form> 
</body> 

這裏是formact.php

<?php 
$name=$_POST['fname']." ".$_POST['lname']; 
$ta=$_POST['words']; 
$con = mysql_connect(); 
$msg="status 0"; 
if (!$con) 
    { 
      $msg="db connect failed"; 
    die('Could not connect: ' . mysql_error()); 
    } 
    if ($con) 
    $msg="db connected"; 
mysql_select_db("php_test",$con); 
$success=mysql_query("INSERT INTO news (title, blog_entry) VALUES ('$name','$ta')"); 
mysql_close($con); 
?> 
<html> 
<head> 
<title>Form with php</title> 
</head> 
<body> 
<?php 
echo $name."<br/>"; 
echo $ta."<br/>"; 
echo $msg."<br/>"; 
if(!$success) 
echo "DB update failed.."; 
?> 
</body> 
</html> 

我得到的回聲$msg=="db connected"!success==true。 你能指出我在哪裏做錯了嗎?

+1

一些DB用戶被限制在更改內容。因此,首先檢查您的用戶是否具有寫入權限。 –

+2

你應該至少使用'mysqli_ *'。如果你正試圖學習PHP,避免過時的API,例如'mysql_ *' – BenM

+0

如果(!$ success)回顯「數據庫更新失敗..」,則更改。到if(!$ success)echo'Error:'.mysql_error();並重新運行,以便我們可以看到錯誤是什麼。 –

回答

1

這已經有一段時間,因爲我最後一個接觸PHP所以這可能不會在所有幫助,但你可以嘗試這2個東西我會建議:

1)我不知道,但我相信如果您想使用$success,則需要在使用後關閉mysql_close($con);

2)你確定!$success有效?我的意思是!通常不是什麼!成功意味着什麼?空?

就像我說我可能是完全錯誤的,只是想幫助...

0

所有mysql_的第一個*已被棄用,您應該使用mysqli_ *或PDO

二據此連接到數據庫

<pre> 
    <?php 
    $link = mysqli_connect('localhost', 'mysql_user', 'mysql_password'); //By default mysql_user=>root and mysql_password='' mean empty 
    if (!$link) { 
     die('Could not connect: ' . mysqli_error()); 
    } 
    echo 'Connected successfully'; 
    mysqli_select_db("php_test", $con); 

    mysqli_query("INSERT INTO news (title, blog_entry) 
    VALUES ('$name','$ta')"); 
    mysqli_close($link); 
    ?> 

1

首先只是呼應了整個查詢用「的mysql_query」連接到它,然後 運行曲在phpmyadmin上你可以很容易地指出你的錯誤,並糾正它。 並通過做回聲您還可以看到值是否來自帖子或不...

相關問題