- リスト###前提・実現したいこと
PHPでDBにユーザ情報を登録したい
ここに質問したいことを詳細に書いてください
LINEbot、PHP、PostgreSQL(pgp_sym_encryptで暗号化)を使用して、LINEのユーザID、状態、アクシデント情報を登録したいのですが、ユーザIDが空で登録されているようです。
作成しているテーブル情報は以下です。
create table mainstatus(userid bytea, state integer, accident integer );
###発生している問題・エラーメッセージ
プログラムを実行して登録されている情報は以下です。
select * from mainstatus; userid | state | accident --------+-------+---------- | 0 | 0
###該当のソースコード
// LINEのユーザID取得 $usid = $event->getUserId(); // DBにユーザ情報を登録 regUserInfo($usid, 0, 0); // ユーザ情報登録関数 function regUserInfo($userid, $state, $accident) { $dbh = dbConnection::getConnection(); $sql = 'insert into ' . D_TABLE_MAINSTATUS . ' (userid, state, accident) values (pgp_sym_encrypt(?, \'' . getenv('XXXXXXXXX') . '\'), ?, ?) '; $sth = $dbh->prepare($sql); $sth->execute(array($userId, $state, $accident)); }
###試したこと
上記のような関数化しなければ(regUserInfo()をコールしないでmain関数内にユーザ情報登録プログラムを記載)ユーザIDが登録されました。regUserInfo()に$useridが空で渡されてしまう事があるのでしょうか。
// LINEのユーザID取得
$usid = $event->getUserId();
$dbh = dbConnection::getConnection();
$sql = 'insert into ' . D_TABLE_MAINSTATUS . ' (userid, state, accident) values (pgp_sym_encrypt(?, '' . getenv('XXXXXXXXX') . ''), ?, ?) ';
$sth = $dbh->prepare($sql);
$sth->execute(array($usid, 0, 0));
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー