Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] mysql_query i zapytanie o te dziwne ukośne cudzysłowia `
Damonsson
post
Post #1





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Zacząłem się uczyć PHP i już mam pełno pytań, ale oszczędzę was i zadam tylko jedno, które mnie nurtuje od paru dni. W jakim celu daje się w mysql_query te ukośne cudzysłowia? np ("CREATE DATABASE `$db_name`") --> ` <-- Czy to coś daje? Albo na co ma wpływ, albo cokolwiek innego, jakąś funkcję pełni? Ciężko mi pytać google, bo nawet nie wiem jak to się fachowo nazywa.

Ten post edytował Damonsson 5.11.2011, 00:16:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
gorden
post
Post #2





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

Ostrzeżenie: (0%)
-----


używa się ich w przypadku słów zastrzeżonych przez mysql, dla przykładu

nie:
  1. SELECT * FROM online WHERE id=1


a:
  1. SELECT * FROM `online` WHERE id=1


ponieważ `online` służy w sql do czegośtam i jest zastrzeżone. poza tym zmienne z php w zapytaniu sql powinno się umieszczać w apostrofach '
Go to the top of the page
+Quote Post
croc
post
Post #3





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Ten znak to grawis. Gorden trochę zaciemnił - tym znakiem MOŻESZ objąć nazwy tabel/pól/baz danych w zapytaniach. Tym sposobem zapobiegniesz konfliktów z nazwami zarezerwowanymi przez składnię, a także - o ile rodzaj systemu na to pozwala - użyć nazw zawierających spację.

Apostrof w zapytaniach wcale nie musi się pojawiać dla przefiltrowanych liczb.
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Nie zaciemnił, dość szybko łapię wink.gif

Ale skoro już poruszyliście apostrofy to pociągnę dalej i mówicie aby stosować, ale przecież taki kod

  1. $nazwa_bazy = "a22aaa";
  2. $link = mysql_connect('localhost', 'root', 'w');
  3. $query = "CREATE DATABASE '$nazwa_bazy'";
  4. if (mysql_query($query)){
  5. echo "ok";
  6. }else {
  7. echo "blad";
  8. }

Daje mi: 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 ''a22aaa'' at line 1.
A '$nazwa_bazy' w postaci $nazwa_bazy - działa jak trzeba.
Go to the top of the page
+Quote Post
croc
post
Post #5





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Bo apostrofy dotyczą tylko i wyłącznie wartości tekstowych. Może przeczytaj jakieś podstawy podstaw MySQL?
Go to the top of the page
+Quote Post
Damonsson
post
Post #6





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Spokojnie, to było pytanie bonusowe, bo sami zaczęliście wątek apostrofów ;P

Ok już łapię, nazwa bazy danych nie jest wartością tekstową, tylko po prostu nazwą bazy danych? Dobrze myślę?

Zamiast czytać wolę się uczyć na własnych błędach, jest to efektywniejsze w moim wypadku.

Więc o co chodziło z
Cytat
poza tym zmienne z php w zapytaniu sql powinno się umieszczać w apostrofach
bo właśnie przez to zrodziło się to moje głupie pytanie?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 01:57