Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pomoc z zapytanie mysql - PDO
csharp
post
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 3
Dołączył: 22.04.2012
Skąd: Warszawa

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


Cześć, w bazie mam coś takiego:

id_service | date

1 2013-03-15
2 2013-03-14

w zapytaniu gdy pojawia się taki warunek:

  1. AND services.id NOT IN (SELECT id_service FROM services_dates WHERE LOCATE(DATE_FORMAT(`date`, '%m/%d/%Y'), :main_form_calendar) <> 0)


to wywala mi błąd...

  1. Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /home/wedding/domains/wedding.cupit.pl/public_html/functions/searchservices.php on line 271


może to się przyda...

  1. IF (isset($search['main_form_calendar'])) $stmt->bindParam(':main_form_calendar', $search['main_form_calendar']);


  1. IF ($stmt->execute() && $stmtCount->execute()) {
  2. $stmt->setFetchMode(PDO::FETCH_ASSOC);
  3.  
  4. $rows = $stmtCount->fetchAll();


bez tego warunku mi wszystko śmiga... chodzi o to, że przekazuje datę

  1. Array ( [main_form_service] => 1 [main_form_post_code] => 82-300 [main_form_calendar] => 03/12/2013 )


i chce sprawdzić czy w tej tabeli nie ma przypadkiem tej daty, jeśli jest to rekord nie może się pokazać, jeśli nie ma to przepuszcza..

dzięki za pomoc.

Ten post edytował csharp 9.03.2013, 11:05:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nithajasz
post
Post #2





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

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


A czy przypadkiem nie przekazujesz tej daty w pętli jakiejś z jakimiś rekordami i masz przypadek, że któryś rekord tej daty nie ma przez co nie występuje bindowanie parametru do zapytania co skutkuje błędem, który wkleiłeś..?

Po drugie tak nawiasem mówiąc warunek w zapytaniu typu WHERE cos IN ( SELECT ... jest złym pomysłem pod kątem wydajności, gdyż do każdego rekordu wykonujesz dodatkowe zapytanie, dla przykładu przy tabeli 100 rekordów zamiast jednym zapytaniem pobrać wyniki wykonasz 101 zapytań, a przy tabeli 10 mln rekordów sam zgadnij jak to wyjdzie pod kątem wydajności (IMG:style_emoticons/default/smile.gif)

Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 24.12.2025 - 17:58