皆様いつもお世話になっております。
実行環境は以下の通りです:
PHP:7.2.1
phpMyAdmin:4.7.7
MySQL:5.6.38
各商品に商品コードを付けようと思い、ランダムに商品コードを生成し、すでに同じ商品コードが存在する場合、もう一度商品コードを生成するようなプログラムを書いています。しかし、以下のようなエラーが起きてしまい手詰まりしてしました。
エラー文は
Fatal error: Uncaught Error: Call to a member function execute() on boolean in /Applications/MAMP/htdocs/Practices/checkDouble.php:14
と出てしまいます。
以前ご指導いただいたコードを参考に2時間以上、試行錯誤を繰り返してみましたが、どうしてもこのエラーが出てしまいます。原因となるカ所も特定し、?プレースメントやバインドなどいろいろな手を尽くしましたが、結局分からずじまいでした。
PHP
1<?php 2 3function connectSQL(){ 4 $user = "root"; 5 $pass = "root"; 6 $dbh = new PDO("mysql:host=localhost;dbname=todo;charaset=utf8", $user, $pass); 7 return $dbh; 8} 9 10function checkDouble($code){ 11 $dbh = connectSQL(); 12 $stmt = $dbh->query("select count(*) from test where code = ?"); 13 //$stmt->bindParam(':code',$code, PDO::PARAM_STR); 14 $stmt->execute([$code]); 15 echo "バグチェック:異常なし"; //↑がエラーの原因と思われる。 16 $totalCode = (int)$stmt->fetchColumn(); 17 $stmt = NULL; 18 if ($totalCode > 0){ 19 $newCode = remakeCode(); 20 echo "重複あり"; 21 return $newCode; 22 }else{ 23 echo "重複なし"; 24 25 } 26 27} 28 29function remakeCode(){ 30 $prod_code = substr(str_shuffle("1234567890"), 0, 5); 31 return $prod_code; 32} 33 34$code = 12345; 35$code = checkDouble($code);
何故このようなエラーが起き、どうしたらこのエラーを解決できるでしょうか、ご教授のほどよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー