Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pomoc z zapytanie mysql - PDO
Forum PHP.pl > Forum > Bazy danych > MySQL
csharp
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.
nithajasz
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 smile.gif

csharp
no właśnie tak może być.. bo nie wszystki rekordy mają tę datę, ja chciałem odrzucic tylko te, które mają przypisaną datę...

baza jest mała, więc wydajności nie brałem tutaj pod uwagę, ale dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.