php  $_SESSIONで sqliteデータの引き渡しができない。

実現したいこと

phpプログラム間で sessionモードを使用して Sqlite データを引き渡したい。

発生している問題・分からないこと

① A.php で Sqlte データを $@@@ に格納する。
② その後、下記プログラムにて $_SESSION にデータを引き渡す。
$_SESSION[''] = $@@@;
③ 引渡し先の B.php で下記プログラムにてデーターを読込みたい。
$result =$_SESSION['
'] ;

該当のソースコード

php

1A.php 2 3<?php4session_start();5 6 // db定義 **********************************7 $file_db = '/home/patoDB.db';8 9 // dbに接続 ********************************10 function connect_db(){11 global $file_db;12 $db = new SQLite3($file_db);13 return $db;14 }15 / 16 17$db = connect_db(); 18//$s_data1 = "1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0i,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0"; 19//$s_data2 = "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; 20 21$sql = "select * from p_data_today where mid='130' limit 1;"; //先ずは1行だけ指定して確認 22$s_data3 = $db->query($sql); 23 24$_SESSION['today_table'] =$s_data3; 25 // for debug ******************************************* 26 //print "s_data: "; 27 28 // var_dump($row); 29 // print '<br>'; 30 31 //print '<br>'; 32 //****************************************************** 33 // $s_data3 の表示内容 34 35?>36・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 37 38B.php 39 40<?php41session_start();42 43$result = array();44$result = $_SESSION['today_table'];45echo "memory: "memory_get_usage() . "\n"."<br>"; // メモリ不足か確認用46echo "result_1: ".$result."<br>";47 48 // for debug *******************************************49 print "result_2: ";50 while ($row = $result->fetchArray()) {51 var_dump($row);52 print '<br>';53 }54 print '<br>';55 / 56?>

試したこと・調べたこと

上記の詳細・結果

ブラウザ表示は以下のようになり、$s_data3 の sqliteデータは引き継がれていない模様
memory: 350280
result_1:
result_2:

ちなみに、$_SESSION['today_table'] =$s_data3; を $s_data1 及び $s_data2 
に置き換えた場合は以下のようになるのでデータは引き継がれている模様

  $s_data1 の場合
memory: 350280
result_1:1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0i,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0
result_2:

  $s_data2 の場合
memory: 350280
result_1:1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
result_2:

sqlite データを引き継がせるにはどうしたらいいか知りたい

補足

開発環境: pi4-4GB,OS:raspbian, apache2, php7.4, Sqlite3(Node-REDにてDB集積)
PC(windows10 home)上の Chrome にて表示確認

result1: , で区切られた場合のデータ確認用。
result2: 区切りが無い場合のデータ確認用 もう少し長くなると vim がぶっ飛んでしまうのでこのくらいの長さにした。

以上。

コメントを投稿

0 コメント