Изучаване на 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
AFAIK, че не трябва да създавате допълнителни променливи - просто използвайте тези, които вече имате в извикванията 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