Изучение запросов PDO

ФИКСИРОВАННЫЙ! Проблема была в том, что я не знал, что вам нужно инициализировать соединение с PDO отдельно от обычного соединения:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

Я пытаюсь изучить PDO в целях безопасности + просто передовой опыт. Правильно ли я перевожу запрос на вставку в PDO? Кажется, это не работает. $dbh должно быть правильным подключением к серверу?

     $stmt = $dbh->prepare("INSERT INTO users (social_id, name, email, social_network, profile_pic) VALUES (:social_id, :name, :email, :social_network, :profile_pic)");
                        $stmt->bindParam(':social_id', $social_id);
                        $stmt->bindParam(':name', $name);
                        $stmt->bindParam(':email', $email);
                        $stmt->bindParam(':social_network', $social_network);
                        $stmt->bindParam(':profile_pic', $profile_pic);

                        // insert one row
                        $stmt->execute(); 

                        $user_id = $dbh->lastInsertId();    

Из этого:

                          mysql_query("INSERT INTO users (social_id, name, email, social_network, profile_pic)
                                            VALUES ('$social_id', '$name','$email', '$social_network','$profile_pic')");                

                            $user_id = mysql_insert_id();

person Wakenn    schedule 22.06.2012    source источник
comment
Насколько я знаю, вам не нужно создавать дополнительные переменные - просто используйте те, которые у вас уже есть в вызовах bindParam.   -  person Alnitak    schedule 22.06.2012
comment
Проблема была в том, что я не знал, что нужно инициализировать соединение с PDO отдельно от обычного соединения: $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);   -  person Wakenn    schedule 22.06.2012
comment
Пожалуйста, опубликуйте свой ответ как ответ. Если нет, то этот вопрос придется закрыть как не настоящий вопрос.   -  person casperOne    schedule 22.06.2012


Ответы (1)


Проблема была в том, что я не знал, что вам нужно инициализировать соединение с PDO отдельно от обычного соединения:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
person Wakenn    schedule 24.06.2012