0

php mysql で問題が発生しています。json_encode メソッドを呼び出した後、データベースで同様のエントリを取得します。これは私のphpコードです:

class xyz
{

    private $_mysqli;

    public function __construct( $hostname, $user, $password, $database ) {

        $this->_mysqli = new mysqli( $hostname, $user, $password, $database );
        if (  mysqli_connect_errno() ) {

            die('couldn\'t connect connection ('. mysqli_connect_errno(). ')'. mysqli_connect_error() );
        }

        return $this->_mysqli;

    }


    public function insert( $user, $app ) {

        if ($stmt = $this->_mysqli->prepare("INSERT INTO `track` ( user, app ) VALUES (?, ?)")) {

            $stmt->bind_param( 'ss', $user, $app );

            $stmt->execute();

            $stmt->close();

        } else {

            printf( "Prepared Statement Error: %s\n", $this->_mysqli->error );
        }
    }

    public function __destruct() {

        return $this->_mysqli->close();

    }


    public function app( $params = array(), $index = NULL ) {

        //get ads from array based on scheduling

        if (is_null( $index )) {

            return $params;

        } else {

            //$this->insert( $user, $ap );

            echo json_encode(array('delay' => '43200000', 'success' => 'true', 'result' => json_encode($params[$index]) ));


        }
    }

}

error_reporting( E_ALL );
ini_set( "display_errors", 1 );

$user = $_REQUEST['user'];
$app = $_REQUEST['app'];

require 'config.inc.php'; //file contain db credentials and array named $params

$res = new xyz( 'localhost', 'root' , '#####' ,'user_db' );

$res->insert( $user, $app );
$res->app($params, 1);

と を呼び出す$res->insert_query( $imei, $pn )$res->app($params, 1)、ブラウザに json が 1 回表示されますが、データベースにエントリが 2 回挿入されます。これは、アプリ関数に挿入関数を配置するか、クラスオブジェクトを使用して外部で呼び出すことができます。これらの関数に私の間違いがあるようでした。しかし、私はそれを解決できません。この問題について私を助けてください。

4

1 に答える 1

0

私はubuntu 11.10を実行しているので、重大なバグがあるブラウジングにクロムを使用しています。この問題に数時間を費やした後、php のjson_encodeメソッドを使用すると、別の mysql 挿入クエリをスローするchromium ブラウザでの戦いがあることがわかりました。また、php パッケージを 5.3.6 から 5.4 にアップグレードしますが、問題は chromium で解決しません。一方、他のブラウザの chrome、mozilla firefox、safari は正常に動作し、json_encode 関数で 1 つのエントリのみを挿入します。また、クロムの動的更新がないため、開発作業に使用するのは哀れです。

于 2013-01-22T06:30:50.660 に答える