Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQLSTATE[HY093] :numéro de paramètre non valide

Selon PDO::Prepare

Activez donc le mode d'émulation

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE);

ou changer en -

$sql = "SELECT * FROM `character` WHERE `name` LIKE :search1  OR `play` LIKE :search2";
$query = $db->prepare($sql); 
$query->execute(array(':search1' => strip_tags($_POST['search']),':search2' => strip_tags($_POST['search'])));

De plus, puisque vous utilisez LIKE dans votre requête, vous voudrez ajouter des caractères génériques % à vos valeurs

$query->execute(array(':search1' => "%".strip_tags($_POST['search'])."%",':search2' => "%".strip_tags($_POST['search'])."%"));