0
<?php

$username = $_POST['username'];
$password = $_POST['password'];

if($username&&$password)
{

$connect = mysql_connect("CiniCraftData.db.55555555.hostedresource.com", "CiniCraftData", "*********") or die("Couldn't Connect");
mysql_select_db("CiniCraftData") or die ("Couldn't Find Database"); 

            $query = "INSERT INTO CiniUsers ('username.CINIDAT') VALUES('$username')";
            $result = mysql_query($query) or die("Error occurred.");

}
else die("Please enter a username and password.");

?>

コードのこの部分について:

$query = "INSERT INTO CiniUsers ('username.CINIDAT') VALUES('$username')";

VALUES が正しく機能していないようです。$username の文字列値を CiniUsers データベースに挿入する必要があります。上記のコードを機能させるにはどうすればよいですか? 私はphpとsqlの構文に非常に慣れていません。オンラインで見つけたガイドは、phpを更新し続けるかのように、すべて互いに完全に異なります。

4

4 に答える 4

1

この部分を見直してみてください:

$query = "INSERT INTO CiniUsers ('username.CINIDAT') VALUES('$username')";

構文は次のとおりです。

$query = "INSERT INTO table (column) VALUES ('$strvar')";

挿入したい列名は何ですか?
その場合はusername.CINIDAT、qouts を削除してみてください。

このような:

$query = "INSERT INTO CiniUsers (username.CINIDAT) VALUES ('$username')";

または、列の名前が次のusernameようになっている可能性があります。

$query = "INSERT INTO CiniUsers (username) VALUES ('$username')";

更新
コメントからのクエリを次のように変更します。

$query = "INSERT INTO CiniUsers (username.CINIDAT) VALUES ('$username')";
于 2012-12-10T01:31:15.157 に答える
1

SQL ステートメントの形式は次のとおりです。

INSERT INTO nameOfTable (column1, column2, column3, etc) VALUES ('column1', 'column2', 'column3', 'etc')

MySQL に保存されているとおりにフィールド名を使用していることを確認する必要があります。SQL は次のようになります。

$query = "INSERT INTO CiniUsers (username) VALUES('$username')";

また

$query = "INSERT INTO CiniUsers (username) VALUES('{$username}')";

役立つかもしれないもう1つのことは、 die() ステートメントがあまり役に立たないことです。はい、php プログラムが早期に終了するのは残念ですが、なぜ終了したかがわかれば、時間とフラストレーションを大幅に軽減できます。PHP と MySQL をまだ学んでいて、エラーの意味がわからないかもしれませんが、見れば見るほど意味がわかり、クエリが間違っていたのか、接続に失敗したのか、その他の多くのことがわかるようになります。次のように変更します。

$connect = mysql_connect("CiniCraftData.db.55555555.hostedresource.com", "CiniCraftData", "*********") or die("Couldn't Connect: mysql_error()");
mysql_select_db("CiniCraftData") or die ("Couldn't Find Database: mysql_error()");
...
$result = mysql_query($query) or die("Some kind of error occurred...Query failed: mysql_error()");

mysql_error() を見ると、このような問題をより迅速に解決できることがわかります。

phpMyAdmin を使用してクエリをテストすると、クエリが完全に機能している可能性があります。確実に知る唯一の方法です。提案された SQL を使用し、PHP 変数を「testUsername_1」などのダミー データに置き換えます。クエリが機能する場合は、データベースにユーザー名を手動で追加したことになります。そうでない場合、問題は SQL ステートメントにあります。

詳細が必要な場合は、SQL INSERT INTO ステートメントに関するドキュメントを次に示します。 http://www.w3schools.com/sql/sql_insert.asp

于 2012-12-10T02:46:34.820 に答える
0

mysqli または pdo を使用する必要があると思います。あなたが使用しているこのライブラリは非推奨です。

とはいえ、username.CINIDAT とは何ですか? これがあなたの問題があるところだと思います。それはこのようなものでなければなりません

$query = "INSERT INTO CiniUsers (ユーザー名) VALUES('$ユーザー名')";

CiniUsers がテーブル名で、username が列名であると想定しています。

于 2012-12-10T01:32:49.867 に答える
-1

最も簡単な方法は、ステートメントと値を連結してクエリを作成することです。

$query = "INSERT INTO CiniUsers ('username.CINIDAT') VALUES('".$username."')";

検証がなければ、これはあまり良い考えではありません。または、このようなことは非常に簡単です。

于 2012-12-10T01:32:33.127 に答える