65371


以下の警告が出たのですが、この警告は端的に言うとどういう意味なのでしょうか？  
お忙しいところ申しわけありませんが、力を貸していただければと思います。

[code]

    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\mini_bbs\index.php on line 20
    array(3) { [0]=> string(5) "HY093" [1]=> NULL [2]=> NULL }
    
[/code]

追記：  
prepareとexecuteを含めたSQLの文は下記の通りです。

[code]

    $message = $db->prepare('INSERT INTO posts SET member_id=0, message=?, reply_post_id=0, created=NOW()');
        $message->execute(array(
          $memeber['id'],
          $_POST['message']
    
[/code]


CC BY-SA 4.0
2020-04-05T13:13:14.743
65369
2020-04-06T00:55:59.953
2020-04-06T00:55:59.953
3060
36669
question
php mysql sql pdo
PDOに関するエラー


SQL文中のパラメータマーカー(`?`や`:name`)の数と、実際に渡されたパラメーターの数が異なっていることを表しています。

(例えば、SQL文中のパラメータマーカーは全て`?`で、実際のパラメータは`execute()`に配列で渡していると仮定して)SQL文中の`?`の数を数えて、それが`execute`に渡しているパラメータ配列の要素数と一致しているかを確認してください。

ご自身で不一致が見つけられないなら、その警告が出る部分のコード(`prepare`などのSQLを含むところから、`execute`で実行するところまで)を、ご質問を編集して追記してください。


CC BY-SA 4.0
2020-04-05T13:44:31.717
65371
2020-04-05T13:44:31.717
13972
65369
answer