Jestem poczatkujacy w php5. NIe rozumie paru rzeczy odnosnie PDO. Przykladowy skrypt (specjalnie z bledem)
<?php try { $dbh = new PDO('mysql:host=localhost;port=3305;dbname=dbname', 'user', 'pass'); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt= $dbh->prepare('INSERT INTO osoba VALUES(:id,:imie,:email)'); $id='nr'; $imie='aaa'; $email='a@a.pl'; $stmt->bindValue(':id',$id,PDO::PARAM_INT); $stmt->bindValue(':imie',$imie,PDO::PARAM_STR); $stmt->bindValue(':email',$email,PDO::PARAM_STR); $stmt -> execute(); $stmt->closeCursor(); } catch (Exception $e) { } ?>
tabela w MySQL qyglada nastepujaco (typ tabeli: InnoDB)
DESC osoba; +-------+-------------+------+-----+---------+----------------+ | FIELD | Type | NULL | KEY | DEFAULT | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | AUTO_INCREMENT | | imie | varchar(10) | YES | | NULL | | | email | varchar(15) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+
Pytania:
1.dlaczego $stmt->bindValue(':id',$id,PDO::PARAM_INT); nie odrzuca wartosci string? przeciez po to sie dodaje ten parametr (PDO::PARAM_INT)
2. Dlaczego MySQL nie odrzuca stringa dla pola id?
uzywam php 5.1.6, baza MySQL 5.0.22