0

送信しようとしている MySQLi のクエリに問題がありますが、エラーは報告されておらず、まったく何も起こっていません。修正のために複数の方法を試しましたが、何もしませんでした。

コード:

$IP = $_SERVER['REMOTE_ADDR'];
$ISP = GetISP($IP);
$Referrer = DetermineReferrer();
$Browser = GetBrowser();
$OS = GetOS();
$Time = Date("F/j/Y, g:i a");

If($IP){
    mysqli_query($Connection, "INSERT INTO tracker (ip, isp, referrer, browser, os, time)
                               VALUES ('mysqli_real_escape_string($IP)',    
                                       'mysqli_real_escape_string($ISP)',
                                       'mysqli_real_escape_string($Referrer)',
                                       'mysqli_real_escape_string($Browser)',
                                       'mysqli_real_escape_string($OS)',
                                       'mysqli_real_escape_string($Time)')");
}

mysqli_close($Connection);
?>

これIf($IP)は実際には一時的なテストでした。そこで、IP が既にデータベースにあるかどうかを確認します。可能であれば、そのためのトラックを教えていただけますか?

否定的であろうと肯定的であろうと、すべてのフィードバックに感謝します。

編集:接続スクリプトを提供しますが、エラーが表示されるので問題はないはずです

<?php
Define('Host', 'localhost');
Define('Username', 'username');
Define('Password', 'password');
Define('Database', 'database name');

$Connection = mysqli_connect(Host, Username, Password, Database);
?>

好奇心から、調査中に VALUES の代わりに SET を使用することについて何かを見ました。それはこれと関係がありますか?

4

2 に答える 2

3

関数呼び出しを使用して文字列を作成する場合は、連結を使用する必要があります。

mysqli_query($Connection, "INSERT INTO tracker (ip, isp, referrer, browser, os, time)
                           VALUES ('".mysqli_real_escape_string($Connection,$IP)."',    
                                   '".mysqli_real_escape_string($Connection,$ISP)."',
                                   '".mysqli_real_escape_string($Connection,$Referrer)."',
                                   '".mysqli_real_escape_string($Connection,$Browser)."',
                                   '".mysqli_real_escape_string($Connection,$OS)."',
                                   '".mysqli_real_escape_string($Connection,$Time)."')");
于 2013-11-01T03:05:42.890 に答える
1

私は問題を解決しました (これが最善の対応方法だと思いました)。

どうやら、私のクエリでは、次のことを行う必要がありました。

$Query = mysqli_query($Connection, "INSERT INTO `tracker` (`ip`, `isp`, `referrer`, `browser`, `os`, `time`) VALUES ('$IP', '$ISP', '$Referrer', '$Browser', '$OS', '$Time')");

そのように、コードは私の IP を送信し、ページに 1 を返します。

助けてくれたすべての人に感謝します。

于 2013-11-01T13:44:17.463 に答える