antonisid Δημοσ. 14 Οκτωβρίου 2011 Δημοσ. 14 Οκτωβρίου 2011 Γειά σας,προσπαθώ μέσω του phpMyAdmin να κάνω Import τον κώδικα για την βάση δεδομένων μου,για μια web-εφαρμογή που πειραματίζομαι και μου εμφανίζει το παρακάτω λάθος. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '‘0', `email` varchar(100) NOT NULL, `active` int(1) NOT NULL default ‘0', ' at line 5 Κώδικας βάσης >CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(32) NOT NULL, `password` varchar(32) NOT NULL, `online` int(20) NOT NULL default ‘0', `email` varchar(100) NOT NULL, `active` int(1) NOT NULL default ‘0', `rtime` int(20) NOT NULL default ‘0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `users` (`id`, `username`, `password`, `online`, `email`, `active`, `rtime`) VALUES (1, ‘testing’, ‘testing’, 0, ‘[email protected]’, 0, 0); Έχετε καμμιά ιδέα? Προφανώς δεν δέχεται τιμές 0 απ'ότι κατάλαβα!!!!
kalogeros Δημοσ. 14 Οκτωβρίου 2011 Δημοσ. 14 Οκτωβρίου 2011 βγαλε τα αυτάκια από το 0 από τα πεδία online, active και rtime. Δηλαδή αντί για default ‘0', γράψε default 0. Τα πεδία online, active και rtime είναι τύπου int, ενώ το 0 με αυτάκια είναι varchar και δεν ταιριάζουν οι τύποι.
wazaa Δημοσ. 14 Οκτωβρίου 2011 Δημοσ. 14 Οκτωβρίου 2011 Δεν δέχεται την τιμή 0 γιατί έχεις ορίσει τα attributes ως ΝΟΤ NULL. Θα πρέπει να το βγάλεις για να δεχτεί την τιμή 0. EDIT: Γράψε άκυρο. Αυτό που λέει ο καλόγερος πρέπει να είναι.
antonisid Δημοσ. 14 Οκτωβρίου 2011 Μέλος Δημοσ. 14 Οκτωβρίου 2011 βγαλε τα αυτάκια από το 0 από τα πεδία online, active και rtime. Δηλαδή αντί για default ‘0', γράψε default 0. Τα πεδία online, active και rtime είναι τύπου int, ενώ το 0 με αυτάκια είναι varchar και δεν ταιριάζουν οι τύποι. Το δοκίμασα αυτό που μου 'πες και μου επέστρεψε το εξής λάθος λάθοςΕντολή SQL: INSERT INTO `users` ( `id` , `username` , `password` , `online` , `email` , `active` , `rtime` ) VALUES ( 1, ‘testing’, ‘testing’, 0, ‘[email protected]’ , 0, 0 ) ; Η MySQL επέστρεψε το μύνημα: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@noemail.co.uk’, 0, 0)' at line 2 Δοκίμασα να βγάλω και το NOT NULL που πε ο wazza αλλά πάλι δε δούλεψε.
kalogeros Δημοσ. 14 Οκτωβρίου 2011 Δημοσ. 14 Οκτωβρίου 2011 Το δοκίμασα αυτό που μου 'πες και μου επέστρεψε το εξής λάθος Δοκίμασα να βγάλω και το NOT NULL που πε ο wazza αλλά πάλι δε δούλεψε. Ο πίνακας δημιουργήθηκε; Αυτό που σου είπα δούλεψε; Το δοκίμασα αυτό που μου 'πες και μου επέστρεψε το εξής λάθος Δοκίμασα να βγάλω και το NOT NULL που πε ο wazza αλλά πάλι δε δούλεψε. το id είναι auto_increment και πιθανόν αυτό να σου δημιουργεί το πρόβλημα. Προσπάθησε χωρίς να δόσεις τιμή στο πεδίο id. Δοκίμασε: > INSERT INTO `users` (`username` , `password` , `online` , `email` , `active` , `rtime` ) VALUES (‘testing’, ‘testing’, 0, ‘[email protected]’ , 0, 0 ) ;
antonisid Δημοσ. 14 Οκτωβρίου 2011 Μέλος Δημοσ. 14 Οκτωβρίου 2011 Ναι βγάζοντας τ αυτάκια ο πίνακας δημιουργήθηκε παρόλο το σφάλμα που εμφάνισε,απλά είναι άδειος.Δοκίμασα και χωρίς να δώσω αρχική τιμή στο id χωρίς αποτέλεσμα.
orotoi Δημοσ. 14 Οκτωβρίου 2011 Δημοσ. 14 Οκτωβρίου 2011 Και γω αυτο με το id σκεφτόμουν.. Αφού είναι auto inc δε χρειάζεται να του δώσεις value.
bnvdarklord Δημοσ. 14 Οκτωβρίου 2011 Δημοσ. 14 Οκτωβρίου 2011 Πρεπει να φταινει τα αυτάκια πρεπει να βαλεις ' αντι για ‘ στα strings.
kalogeros Δημοσ. 14 Οκτωβρίου 2011 Δημοσ. 14 Οκτωβρίου 2011 Πρεπει να φταινει τα αυτάκια πρεπει να βαλεις ' αντι για ‘ στα strings. Πολύ σωστή παρατήρηση. Αντικατέστησε όλα τα πλαγιαστά αυτάκια (`) με μονά ή διπλά αυτάκια (' ή "). Κράτα μας ενήμερους.
antonisid Δημοσ. 14 Οκτωβρίου 2011 Μέλος Δημοσ. 14 Οκτωβρίου 2011 Μετά απο αρκετή ώρα βρέθηκε λύση. α) Στο INSERT που ορίζουμε τις τιμές (τις τιμές όχι σε πια πεδία να μπουν) ήθελε αντι για ΄ ' β) Αντί για default ‘0' ήθελε default "0" Παραθέτω και τον σωστό κώδικα >CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(32) NOT NULL, `password` varchar(32) NOT NULL, `online` int(20) NOT NULL default "0" , `email` varchar(100) NOT NULL, `active` int(1) NOT NULL default "0" , `rtime` int(20) NOT NULL default "0", PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `users` (`id`, `username`, `password`, `online`, `email`, `active`, `rtime`) VALUES (1, 'testing', 'testing', 0, '[email protected]', 0, 0); Ευχαριστώ για την βοήθειά σας
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.