現在独学でよく分かる PHPの教科書 PHP7対応版を読んでコードを書いています。
222ページのchapter5-7件数の多いレコードを、ページを分けるの途中の工程でエラーが発生して解決できなくお助け願います。
環境
Mac M1
PHP 7.4.21
MySQL Ver 8.0.30 for macos12.4 on x86_64 (Homebrew)
発生している問題・エラーメッセージ
Fatal error: Uncaught Error: Undefined class constant 'PRAM_INT' in /Applications/MAMP/htdocs/php_book/chapter5/chapter5-7/page.php:20 Stack trace: #0 {main} thrown in /Applications/MAMP/htdocs/php_book/chapter5/chapter5-7/page.php on line 20
該当のソースコード
<?php // 共通化するためのファイル // ファイルの一番上にrequire( "dbconnect.php" ) ;で共通化できる try { $db = new PDO('mysql:dbname=php_test;host=localhost;charset=utf8','root','root'); echo "接続OK!"; } catch (PDOException $e) { echo 'DB接続エラー!: ' . $e->getMessage(); } ?>
<?php require('/Applications/MAMP/htdocs/php_book/chapter5/chapter5-6/dbconnect.php'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h2>Practice</h2> <?php // データの一覧・詳細画面を作る // データの一覧表示 // 文字数の多いレコードだとスマホなどで見るのが大変になるので見やすくするため文字の表示を制限する // 切り取られた文字列 = mb_substr(切り取る文字列, 最初の位置, 文字数); // 0から10文字までの制限 // hrefの中、PHPのパラメータを作っている $memos = $db -> prepare( 'select * from memos order by id limit ?, 5' ); $memos -> bindParam( 1, $_REQUEST[ 'page' ], PDO::PRAM_INT ); $memos -> execute(); ?> <?php // 10文字以上だった場合...と表示するコードの書き方 // 三項演算子 // echo mb_strlen( $memo[ "memo" ] ) > 10 ? "..." : "" ; // 引数1に条件,引数2に成立したら表示したい内容,引数3成立しなかったら””で何もしない ?> <article> <?php while ( $memo = $memos -> fetch() ) : ?> <p> <a href = "show.php?id=<?php echo $memo[ "id" ] ; ?>"> <?php echo mb_substr( $memo[ 'memo' ], 0, 10); ?> <?php echo mb_strlen( $memo[ "memo" ] ) > 10 ? "..." : "" ; ?> </a> </p> <time><?php echo $memo[ 'created' ] ; ?></time> <hr> <?php endwhile ; ?> </article> </body> </html>
試したこと
コードのtypoミスを疑い何度も書き直したのですがtypoミスじゃなく
エラー文に出ているPDO::PRAM_INTがうまく動いていないの考えてるのですがどうすればいいか分からずです。
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/16 09:21