插入mysql数据库准备语句

Can anybody see why this is not inputting into my database..

I did have it working, but now i got the error on mysql A form on this field has more than 1000 fields, but none of them do....

here is the prep statment

$db = new PDO("mysql:host=localhost;dbname=class2", 'root', ''); 


$query="INSERT INTO `testdata` (`1st name`, `2nd name`, `title`, `info`, `location`, `phone`, `postcode`, `image`, `image2`, `image3`, `image4`, `image5`, `price`, `catagory`, `cond`, `delivery`, `email`, `username`, `youtubevideo`, `paypal`, `facebook`, `twitter`, `feedbackscore`) 
                         VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";


$stat=$db->prepare($query);

$stat->execute(array("$firstname","$lastname","$sellingtitle","$sellinginfo","$town","$phone1","$postcode","$i0url","$i1url","$i2url","$i3url","$i4url","$price","$catagory","$cond","$delivery","","$sellername","$youtubeurl","$paypal","$facebook","$twitter","feedbackscore"));

Your PDO is not prepared correctly.

$database = new PDO("mysql:host=localhost;dbname=class2", 'root', ''); 

$query = "UPDATE users SET first_name = :first_name, last_name = :last_name
                                                 WHERE user_id = :user_id";

$update = $database->prepare($query);
$update->execute([
    ':first_name' => $_POST['firstname'],
    ':last_name' => $_POST['lastname'],
    ':user_id' => $_SESSION['user_id'] 
]);
$update->fetch();

With PDO you define the keys of the values in the prepare string like :first_name.

So then in the execute function's array, you define the values of these keys.

Hope it helps.