-2

私は Web 開発の初心者です。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

最後にphpに触れてからしばらく経っているので、これはまったく役に立たないかもしれませんが、私が提案する次の2つのことを試すことができます:

1)よくわかりませんが、使用したい場合は、使用後$successに閉じる必要があると思います。mysql_close($con);

2) 本当に!$success有効ですか?? つまり!、通常は not ですが、!success とはどういう意味ですか? 空の?

私が言ったように、私は完全に間違っているかもしれません、ただ助けようとしているだけです...

于 2012-10-16T13:03:36.633 に答える
1

まず、「mysql_query」を添付してクエリ全体をエコーし​​、次にphpmyadminでそのクエリを実行すると、エラーを簡単に指摘して修正できます。echo を実行すると、値が投稿から来ているかどうかを確認することもできます...

于 2012-10-16T14:32:14.883 に答える
0

まず、mysql_* は非推奨です。mysqli_* または PDO を使用する必要があります。

2番目にデータベースに接続します

<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 に答える