Удаленная база данных Cassandra не получает данные с PHP, а с помощью nodejs

0

У меня возникает проблема доступа к данным из базы данных cassandra с помощью PHP, пока я могу получить доступ с помощью nodejs.

Вот мой PHP-код

$s = "SELECT * FROM user_project_0001 WHERE usermail='sohini.neogi#ATwitslog.com'";
        $stmt = $this->dbf->prepare( $s );
        if( !$stmt ) {
            echo "<br/>\nPDO::errorInfo():<br/>\n";
            print_r($this->dbf->errorInfo());
            echo '<br/>';
        }
        $stmt->execute();
        echo $stmt->rowCount();
        /** Plusieurs projets pour cet utilisateur **/
        if( $stmt->rowCount() > 1 ) {
            echo '<select name="project_name" id="project_name_select">';
            echo '<option value="">' . __( 'Please select', 'weenat-plugin' ) . '</option>';
            while ($row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
                echo '<option value="' . $row['project_name'] . '" ';
                if( isset( $_POST['project_name'] ) && $row['project_name'] == $_POST['project_name'] )
                    echo 'selected="selected"';
                echo '>' . $row['project_name'] . '</option>';
            }
}

Я получаю 0 записей, а если попытаюсь получить доступ к одному и тому же запросу с nodejs, я получаю 3 записи.

Вот код nodejs

client.execute("SELECT * FROM user_project_0001 WHERE usermail='sohini.neogi#ATwitslog.com'", function (err, result) {
           if (!err){

               if ( result.rows.length > 0 ) {
                   console.log("Total Records = %d", result.rows.length);
                   var user = result.rows[0];
                   console.log("name = %s", user.usermail);
                   console.log("pname = %s", user.project_name);
               } else {
                   console.log("No results");
               }
           }


       });

Для PHP я использую PDO для подключения

$dsn = 'cassandra:host=xx.xxx.xx.xx;port=9160';
$this->dbf = new PDO($dsn);
 $this->dbf->exec("USE senskey01");

Для nodejs это моя связь с драйвером cassandra

var client = new cassandra.Client({contactPoints: ['xx.xxx.xx.xx'], keyspace: 'senskey01'});

Я не понимаю, почему PHP не может получить доступ к базе данных.

  • 0
    Где вы устанавливаете пространство клавиш в php?
Теги:
database
cassandra

1 ответ

0

Я не человек PHP, но, глядя на создание PDO, а также на запрос, я думаю, что отсутствует пространство ключей. Попробуйте изменить код:

  1. либо подключиться к определенному ключевому пространству
  2. или полностью квалифицировать имя таблицы в вашем запросе:

    $s = "SELECT * FROM senskey01.user_project_0001 WHERE usermail='sohini.neogi#ATwitslog.com'";
    
  • 0
    нет, это не работает. Также позвольте мне сказать вам, что я уже использовал пространство клавиш, как это $ this-> dbf-> exec ("USE senskey01");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню