PDO SQLSTATE [HY093] [重复]

This question already has an answer here:

<?php
$server   = 'mysql:dbname=test;host=localhost';
$user     = 'root';
$password = '';
$pdo      = new PDO($server, $user, $password);
$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$test=0;
$teest=3;
$query = $pdo->prepare('SELECT * FROM imgdb LIMIT :staaart,8');
$query -> execute(array('staaart' => $test, 'eeend' => $teest));
$result=$query->fetchAll();
print_r($result);
?>

This is my PHP/PDO and i get this Warning:

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampplite\htdocs\pdo_db_connection.php on line 11

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number in C:\xampplite\htdocs\pdo_db_connection.php on line 11 Array ( )

EDIT: Now it works for me

$server   = 'mysql:dbname=test;host=localhost';
$user     = 'root';
$password = '';
$pdo      = new PDO($server, $user, $password);
$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$test=0;
$teest=2;
$teeest='Bochum';
$query = $pdo->prepare('SELECT * FROM imgdb WHERE stadt = :stadt LIMIT :staaart,:eeend');
$query->bindParam(':stadt', $teeest, PDO::PARAM_STR);
$query->bindParam(':staaart', $test, PDO::PARAM_INT);
$query->bindParam(':eeend', $teest, PDO::PARAM_INT);
$query -> execute();
$result=$query->fetchAll();
print_r($result);
</div>

You only have one parameter in your prepared query, but are attempting to bind two:

$query = $pdo->prepare('SELECT * FROM imgdb LIMIT :staaart,8');
$query -> execute(array('staaart' => $test, 'eeend' => $teest));

Either prepare both staaart and eeend:

$query = $pdo->prepare('SELECT * FROM imgdb LIMIT :staaart,:eeend');
$query -> execute(array('staaart' => $test, 'eeend' => $teest));

Or execute with just staaart:

$query = $pdo->prepare('SELECT * FROM imgdb LIMIT :staaart,8');
$query -> execute(array('staaart' => $test));