0
<?php

$connect = pg_connect("dbname=$dbase host=".$host." user=".$user." password=".$pass) or die("I sense a disturbance in the force ");

$action = $_POST['action'];

switch($action){
case 'bagSubmit' : bagSubmit(); break;
}

function bagSubmit(){
    $sql = 'SELECT * FROM cntrt';
    $query = pg_query($connect,$sql) or die('could not connect');
}
?>

上記のphpは「接続できませんでした」を返します。SQLクエリはデータベースで正常に実行されます。これは、phpでクエリを実行するための私の通常の手順です(以前は常に機能していました)。現在の唯一の違いは、jqueryからphpを呼び出していることです。クエリの失敗(「接続できませんでした」)が返されるという事実からも明らかなように、jqueryも正常に実行されています。私は何が欠けていますか?

$.ajax({
    url: 'functions.php',
data: {action: 'bagSubmit'},
type: 'post',
success: function(response){
    $('body').append(response);
}
});
4

3 に答える 3

7

$connectが定義されていません。あなたが必要です

function bagSubmit(){
    global $connect;
    $sql = 'SELECT * FROM cntrt';
    $query = pg_query($connect,$sql) or die('could not connect');
}
于 2013-01-28T15:52:10.550 に答える
4
<?php
    $host = "10.10.10.129";
    $user = "postgres";
    $pass = "";
    $dbase = "attest";
    $connect = pg_connect("dbname=$dbase host=".$host." user=".$user." password=".$pass) or die("I sense a disturbance in the force ");

    $action = $_POST['action'];

    switch($action){
        case 'bagSubmit' : 
            bagSubmit($connect); 
            break;
    }

    function bagSubmit($connect){
        $sql = 'SELECT * FROM cntrt';
        $query = pg_query($connect,$sql) or die('could not connect');
    }
?>
于 2013-01-28T15:53:30.303 に答える
1

グローバルを使用する代わりに、$connectオブジェクトを関数に渡すだけです。

function bagSubmit($connect){
    $sql = 'SELECT * FROM cntrt';
    $query = pg_query($connect,$sql) or die('could not connect');
}

そしてそれをそのように呼びます:

bagSubmit($connect);
于 2013-01-28T15:53:50.397 に答える