1

助けてください..あきらめます..

MySqlテーブルを更新しようとしています..ファイルはsettings.phpです(自己提出)フォームコードは次のとおりです。

<form method="POST" action="settings.php">
  First Name <input type="text" name="fname" id="set_fname"  />
  Last name <input type="text" name="lname" id="set_lname"  />
  Email: <input type="text" name="email" id="set_email"  />
  mobile <input type="text" name="mobile" id="set_mobile" />
  Bio: <textarea name="bio" id="set_bio"  cols="" rows="5" maxlength="1000" ></textarea>
  <input type="submit" id="personal_submit" value="Update" />
</form>

php部分

$id=$_SESSION['id'];   

$fname_update =$_POST['fname'];
$lnam_update = $_POST['lname'];
$email_update = $_POST['email'];
$mobile_update =$_POST['mobile'];
$bio_update =$_POST['bio'];

$db_host="localhost";
$db_uname="admin";
$db_pass="mypass";
$db_db="main_db";
$db_table="mebers_general";

mysql_connect("$db_host","$db_uname","$db_pass") or die (mysql_error());
mysql_select_db("$db_db") or die("no database by that name");

if($_POST['fname']){

  $sql_personal_update=mysql_query("UPDATE members_general SET first_name='$fname_update' WHERE id='$id' ") or die (mysql_error()) ;
    if($sql_personal_update){
      echo "should be ok but no record is updated....Heeelppp";
      }else{
      echo "Smth is Wrong";
      }  
}

私はエラーが発生しません..

その結果、エコー文字列「問題ないはずですが、レコードが更新されていません....Heeelppp」が表示されます。phpMyadminで同じクエリを試しましたが、問題なく動作します。私は変数をチェックしました - それらは空ではありません..すべてがそうであるようです. 助けてください..すでにここに2日間積み上げられています//

4

4 に答える 4

4
  $sql_personal_update=mysql_query("UPDATE members_general SET firs_name='".$fname_update."' WHERE id='".$id."' ") or die (mysql_error()) ;
于 2012-10-09T18:13:46.200 に答える
4

あなたは実際にクエリを実行していません:

$sql_personal_update=("UPDATE members_general SET firs_name='$fname_update' WHERE id='$id' ") or die (mysql_error()) ;
                     ^^^^^--- where's mysql_query()?

そのはず

$sql_personal_update = mysql_query(blah blah blah) or die(mysql_error());
于 2012-10-09T18:14:05.667 に答える
3

実際に関数を呼び出していないからだと思いますmysql_query!

まず、試してみてください

$sql_personal_update=mysql_query("UPDATE members_general SET firs_name='$fname_update' WHERE id='$id' ") or die (mysql_error()) ;

また、firs_nameタイプミスですか、それとも本当にデータベースの列をそのように呼んでいましたか?

編集: JoachimIsaksson が示唆したように、mysql_connect などは非推奨です。以下のように、代わりに mysqli を使用します。

$mysqli = new mysqli($db_host,$db_uname,$db_pass, $db_db) or die (mysql_error());
if($_POST['fname']){
    $sql_personal_update=$mysqli->query("UPDATE members_general SET first_name='$fname_update' WHERE id='$id' ") or die (mysql_error()) ;
    if($sql_personal_update) {
        echo "should be ok but no record is updated....Heeelppp";
    } else {
        echo "Smth is Wrong";
    }  
}
于 2012-10-09T18:14:06.673 に答える
0

みんなありがとう、すべてのページを空白から再コーディングしたところ、うまくいきました..理由がわかりません..コーディングの連続で20時間目かもしれません..ありがとう..

于 2012-10-10T18:17:04.750 に答える