0

dbテーブルに特定の値を入力しようとしていますが、すべての値が入力されているわけではありません。

繰り返しになりますが、接続していないなどの理由で、一部をスキップします。問題は、データベースを通過し通信しているにもかかわらず、情報のアップロード時に特定のフィールドのみが入力されていることです。

たとえば、

私の「username/password」フィールドはデータベース内で同じ値を持っているので、なぜ一方のフィールドが入力され、もう一方が入力されていないのかわかりません...

しかし、ここにいくつかのコードがあります..それがたくさんあるので、重要な部分をコピーして貼り付けます

the html for example is

<input type="text" name="uname" id="uname" value="Enter Desired Username"/><br/>
<input type="text" name="upass" id="upass" value="Enter Desired Password"/><br/>

etc...you know same old html

php接続が機能するなど。

変数

$c2d = "the db connection here";
$userName = mysql_real_escape_string($_POST['uname']);
$userPass = mysql_real_escape_string($_POST['upass']);

//ここですべての変数を設定しましたが、これは問題のある変数です。

$addDetails2DbQueryS = "INSERT INTO accounts (appUname, appUpass)VALUES('$userName','$userPass')";

$addDetails2DbQueryS = "INSERT INTO accounts (appUname, appUpass) VALUES('$userName','$userPass')";

//作成中のアカウントがすでに存在するかどうかなど、ここでいくつかのチェックを実行します。これも同様に機能します。

次に、すべてがうまくいったら、これを使用しているデータベースにアカウントを追加します

$addDetails2DbQuerySDoIt = mysqli_query($c2d, $addDetails2DbQueryS) or die("error [003] could not add acc to db" . mysqli_error);

そして何が起こっているのか、ユーザー名はログに記録されますが、パスワードフィールドは空です

何が間違っているのか、何か考えはありますか?事前に感謝し、どんな助けでも私は喜んでそして謙虚に感謝します。ありがとうございました

4

1 に答える 1

2

間違ったエスケープ関数を使用しています...拡張機能mysql_real_escape_stringから使用していますext/mysqlが、実際にはMySQLi拡張機能を使用して挿入を行っているため、そのバージョンの関数を使用する必要がありますmysqli_real_escape_string

両方ではなく、どちらか一方の DB ドライバーを使用してください :-)

false実際には、両方の値を取得することを期待していますmysql_connect。呼び出し元で db 接続を確立していない場合は、 mysql_real_escape_stringfalse を返し、waring を生成する必要があるためです。

MySQL 接続。リンク識別子が指定されていない場合、mysql_connect() によって開かれた最後のリンクが想定されます。そのようなリンクが見つからない場合、引数なしで mysql_connect() が呼び出されたかのようにリンクを作成しようとします。接続が見つからない、または確立されていない場合は、E_WARNING レベルのエラーが生成されます。

接続を確立した場合、 との接続を確立したことがないため、失敗することmysql_connect()が予想されます。mysqli_query()mysqli_connect()

3 つの DB ドライバーのいずれかを選択し、そのうちの 1 つのクラス/関数のみを使用すると、ほとんどの問題が解消されると思います。

  1. PDO (私のお気に入りで、エレガントで、かなり使いやすく、必要に応じてコードを diff.db に簡単に移植できます)
  2. MySQLi(最高の範囲の MySQL 固有の機能を提供しますが、使いにくいです)
  3. ext/mysql(可能な限り疫病のように避けてください)
于 2012-06-15T17:26:50.017 に答える