Would you mind rephrasing and fixing your code? I’m having a bit of trouble following, especially since you have syntax errors, I’m not sure if they are intentional or not part of what you are asking.
It returns an object (a class). That means you have to save the result so that you can use it. the reason you cant do $pdo->prepare and then immediately $pdo->bindValue is because bindValue() does not exist in PDO, it exists in PDOStatement. It’s just part of good object oriented design practices.
$pdo is the tunnel that connects your database and your webserver.
$s is the car (query/statement) that you put suitcases (data) into, and then drive it through the tunnel.
It doesnt make any sense to say “add suitcase to tunnel”.
The tunnel doesnt know which car you’re putting the suitcase into. (It also doesnt care.)
There can be multiple cars waiting to go through the tunnel. (Typical tunnel builders; only build a one-lane tunnel.)
I have often wondered why some many examples use the bind method. I almost always just pass in the parameters as an array. You can do this without storing anything: