簡単な掲示板を作っています。
ユーザーに入力された値をバインドしprepare、exce等をし最後にfetchArray()で出力したいのですが、エラーが出てしまいうまくできません。
方法を教えてください。
エラー
Warning: SQLite3::prepare(): Unable to prepare statement: 1, near "15": syntax error in
Uncaught Error: Call to a member function bindValue() on null in
コード
$name=$_POST['name'];
$main=$_POST['main'];
// 書き込み日時を取得
$now = date("Y/m/d H:i:s");
$db = new SQLite3("test.db");
$sql = "INSERT INTO tablename(view_name,message,post_date) VALUES(:name,:main,$now)";
$db->prepare($sql);
$res->bindValue(':name',$name,SQLITE3_TEXT);
$res->bindValue(':main',$main,SQLITE3_TEXT);
$res->execute();
$sql="SELECT * FROM tablename";
$res = $db->query($sql);
while( $row = $res->fetchArray() ) {
echo '<ul> ' . ' <li> '.$row[0].'</li>'. ' <li> '.$row[1].'</li>'.
' <li> '.$row[2].'</li>'. ' <li> '.$row[3].'</li>'. ' <li> '.$row[4].'</li>'.
'</ul>';}
No.2ベストアンサー
- 回答日時:
>"INSERT INTO tablename(view_name,message,post_date) VALUES(:name,:main,$now)";
文字列内に時刻を直接埋め込んでいるので、SQL文法エラーを起こしてるのでしょう。
post_dateの値もプレイスホルダー経由でバインドしてあげるとよいかと。view_nameやmessageもそうしてるのですから。
No.1
- 回答日時:
1. SQLite3::prepare の戻り値を正しく使いましょう
https://www.php.net/manual/ja/sqlite3.prepare.php
2. SQL 文法違反しているので $now も bindValue で渡しましょう
https://www.php.net/manual/ja/sqlite3stmt.bindva …
3. 保守性の観点から SELECT 対象は "*" でなく列名を列挙しましょう
4. スクリプト注入の危険を避けるため $row[?] はエスケープして表示しましょう
https://www.ipa.go.jp/security/awareness/vendor/ …
https://www.php.net/manual/ja/function.htmlspeci …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数条件での検索について教え...
-
テキストボックスの値を取得したい
-
VBA で、スペースを含むファイ...
-
重複を防ぐ記述について教えて...
-
openCVのトラックバーについて
-
UPDATEできない
-
Smartyを利用したファイルアッ...
-
$_SESSIONに渡した後はそのまま...
-
PHPからデータベースの該当行を...
-
PHPからHTMLへの変数の受け...
-
検索時の選択内容を保持する方法
-
syntax error, unexpected '}' ...
-
phpで分からないエラーが出てし...
-
<input type="hidden" >で配列...
-
ラジオボタンの値を受け取ってP...
-
PHPでURLにジャンプするには?
-
PHPで画像の渡しが上手く行きま...
-
フォームボタンを押すたびに数...
-
PHPを勉強中の専門学生です。 ...
-
phpで、フォームのラジオボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Flaskでサーバー立ち上げに関して
-
重複を防ぐ記述について教えて...
-
VBA で、スペースを含むファイ...
-
phpで変数を使ってcopyできない
-
PHPで入力フォームでデータを確...
-
PHPからHTMLへの変数の受け...
-
POSTの項目に追加
-
PHP MySql 画像を取得
-
MySQL,PHPのリロードによる二重...
-
UPDATEできない
-
ファイル名を変更してアップロ...
-
php、sqlite3にデーター追加で...
-
openCVのトラックバーについて
-
複数条件での検索について教え...
-
PHP5でsimple_xml_load_fileす...
-
PHPのリロード時の処理
-
連想配列を複数条件で比較して...
-
PDOのprepareでLIKEの部分一致...
-
POSTされない
-
アップロードしたファイルの絶...
おすすめ情報