-2

我是网络开发的新手。我正在检查如何使用 php 将数据从表单更新到服务器中的数据库。我似乎能够连接到数据库,但无法更新数据。

表单的 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"and 。!success==true你能指出我在哪里做错了吗?

4

3 回答 3

1

首先,通过附加“mysql_query”来回显整个查询,然后在 phpmyadmin 上运行该查询,您可以轻松地指出您的错误并纠正它。通过回显,您还可以查看值是否来自帖子...

于 2012-10-16T14:32:14.883 回答
1

自从我上次接触 php 以来已经有一段时间了,所以这可能根本没有帮助,但你可以尝试我要提出的以下 2 件事:

1)我不确定,但我相信如果你想使用$success你需要mysql_close($con);在使用后关闭它。

2)你确定!$success是有效的?我的意思!是通常不是,但 !success 是什么意思?空的?

就像我说的那样,我可能完全错了,只是想帮助...

于 2012-10-16T13:03:36.633 回答
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);
    ?>

于 2012-10-16T13:37:32.553 回答