0

クエリは実行されていますが、SQL サーバーに送信されていません。私の現在の登録スクリプト。

$link = mysqli_connect("$server", "$user", "$pass", "$webdb");
$username = mysqli_real_escape_string($link, (string) $_POST['username']);
$displayname = mysqli_real_escape_string($link, (string) $_POST['display_name']);
$email = mysqli_real_escape_string($link, (string) $_POST['email']);
$password = sha1((string) $_POST['password']);
$query="INSERT INTO user (`username`, `nicename`, `email`, `password`)
VALUES ('$username', '$displayname', '$email', '$password', '1')";
mysqli_query($link, $query);
mysqli_close($link);
echo $query;
?>

クエリから受け取った出力:

INSERT INTO user (username, nicename, email, password) VALUES ('orion5814', 'Orion5814', 'my@abc.com', '72f2ac484bee398758e769530dd56228d905884d', '1')

すべてのリンク変数を確認しましたが、適切な情報が適切に設定されている限り、それらはすべて正しく設定されているため、ここから他にどこに行くべきかわかりません。質問ばかりで申し訳ありません。少しでも役立つと思われる場合は、doxramos.org で見ることができます。

4

3 に答える 3

2

jordi12100 が示唆したように、データベースへの接続中またはクエリの実行中にエラーを確認することをお勧めします。

次のように実行できます。

$link = mysqli_connect("$server", "$user", "$pass", "$webdb") or die( "Error:" . mysqli_connect_error());

mysqli_query($link, $query) or die ("Error:" . mysqli_error($link));

これにより、何が間違っていたかがわかります。お役に立てれば。

于 2012-10-09T21:47:59.243 に答える
2

クエリに欠陥があります。4 つの列(username, nicename, email, password)に名前を付けますが、5 つの値をリスト('orion5814','Orion5814','my@abc.com','72f2ac484bee398758e769530dd56228d905884d','1') します。最後の値を削除すると、クエリは機能するはずです。

また、次のように mysqli へのオブジェクト指向インターフェイスを使用して、コードを簡素化することもできます。

$username = $link->real_escape_string($_POST['username']);

$link->query($query);
$link->close();

コードで必要に応じて自動的に行われるため、変数を文字列として明示的にキャストする必要もありません。

于 2012-10-09T21:41:50.497 に答える
1

おそらくクエリのエラーです。mysqli_error();でエラーをキャッチします。

于 2012-10-09T21:40:37.727 に答える