2012-10-16 152 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上你可以很容易地指出你的错误,并纠正它。 并通过做回声您还可以看到值是否来自帖子或不...

相关问题