Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Index za cholerę nie chce się połączyć z bazą
Forum PHP.pl > Forum > Przedszkole
krzywomordus
Posiadam pewien index.php: jego początek wygląda tak:
  1. <?
  2.  
  3.   require ("starylib/dbexec.php");
  4.  
  5.   if ($delete) {
  6.       $sql="DELETE FROM applications WHERE apl_id=$delete";
  7.       dbexec($sql);
  8.   }
  9.  
  10.   $sql = "Set DateStyle to 'iso'; SELECT date(apl_submitdate) as submitdate,
  11.   * FROM applications
  12.   WHERE apl_submitdate>='2007-01-01'
  13.   ORDER BY apl_id";
  14.   $exec= dbexec($sql);
  15.   ?>


Jak widać, odnosi się do pliku dbexec.php:

  1. <?
  2. Function dbexec($sql,$silent=false) {
  3.    global $config;
  4.     $conn = mysql_connect('localhost','xxx','xxx');
  5.     $conn = mysql_select_db('xxx');
  6.     if (!$conn) {
  7.     //logevent("dbexec: Cannot connect to the main database: $php_errormsg", "crit");
  8.     if ($silent) {
  9.         return false;
  10.     } else {
  11.         include ("inc/err_dbase.html");
  12.         mysql_close($conn);
  13.         exit;
  14.     }
  15.     } else {
  16.     global $cnf_debug;
  17.     $exec = mysql_query($sql);
  18.     if (!$exec) {
  19.         if ($cnf_debug) {
  20.         echo "Error: $php_errormsg
  21. \n";
  22.         echo "SQL: $sql\n";
  23.         } else {
  24.         //logevent ("dbexec: Database error. SQL query logged. Exiting.","err");
  25.         //logevent ("dbexec: $php_errormsg","err");
  26.         //logevent ("dbexec: $sql","err");
  27.         if ($silent) {
  28.             return false;
  29.         } else {
  30.             echo 'Wystąpił problem z połączeniem z bazą danych.
  31. Proszę powiadomić <A href="mailto:xxx">administratora</a>';
  32.         }
  33.         }
  34.         mysql_close($conn);
  35.         exit;
  36.     }
  37.     mysql_close($conn);
  38.     return $exec;
  39.     }
  40. }
  41. ?>


Problem w tym, że nieważne jak to zrobię, nigdy nie będzie chciał się połączyć z bazą:
Cytat
Wystąpił problem z połączeniem z bazą danych. Proszę powiadomić administratora.


Próbowałem to naprawić na parę róźnych sposobów (np. korzystając z config.php, albo tworząc funkcję dbexec w index.php, ale nic nie pomagało).
Czy w środku jest jakaś literówka? Nie mogę niczego się dopatrzeć. Proszę więc o pomoc party.gif .
Foxx
Zmień na:
  1. <?php
  2. $exec = mysql_query($sql) or die(mysql_error());
  3. ?>

Zobaczysz wtedy błędy sql'a. Podobnie zrób z funkcjami mysql_connect i mysql_select_db.

Acha, i zmień znaczniki bbcode na PHP bo się przecież tego nie da czytać.
krzywomordus
Bląd brzmi... dziwnie.

Unknown system variable 'DateStyle'

DateStyle znajduje się oczywiście w index.php i tylko w tym miejscu, które skopiowałem i wkleiłem tutaj.
Ale co to ma wspólnego z niełączeniem się do bazy?
I co z tym variable zrobić?
bełdzio
wywal z zapytania "Set DateStyle to 'iso'; "
krzywomordus
Nie zrobiłem tego wcześniej, ponieważ wyskakuje ten błąd:

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 '* FROM applications WHERE apl_submitdate>='2007-01-01' ORDER BY apl_id' at line 2

Ta linijka musi zostać, inaczej "egzystencja" indexu jest zbędna tongue.gif

Może wystarczy to tylko zapisać inaczej... Wcześniej działał bez zarzutu - teraz się wszystko psuje.
bełdzio
pokaz cale zapytanie + strukture tabelki
krzywomordus
  1. <?
  2.  
  3. require ("starylib/dbexec.php");
  4.  
  5. if ($delete) {
  6.    $sql="DELETE FROM applications WHERE apl_id=$delete";
  7.    dbexec($sql);
  8. }
  9.  
  10. $sql = " SELECT date(apl_submitdate) as submitdate,
  11. * FROM applications
  12. WHERE apl_submitdate>='2007-01-01'
  13. ORDER BY apl_id";
  14. $exec= dbexec($sql);
  15.  
  16. $numrows=mysql_numrows($exec);
  17.  
  18. include ("header.html");
  19.  
  20. echo "<p>Znalezionych aplikacji: <b>$numrows</b> &nbsp; &nbsp;<a target=\"_blank\" href=\"export.php\">Export do txt</a></p>";
  21.  
  22. echo '<table border=1 align=left cellpadding=1 cellspacing=0>
  23. <tr class=tbhead>
  24.  <td>Lp.</td>
  25.  <td width="90">Data</td>
  26.  <td>Nazwisko i Imię</td>
  27.  <td>Miejscowo�ć</td>
  28.  <td>Tryb nauki</td>
  29.  <td>Specjalno�ć</td>
  30.  <td>&nbsp;</td>
  31. </tr>
  32. ';
  33.  
  34. $apl_spec_arr["1"]="ccc";
  35. $apl_spec_arr["2"]="bbb";
  36. $apl_spec_arr["3"]="aaa";
  37. $apl_spec_arr["4"]="zzz";
  38. $apl_spec_arr["5"]="yyy";
  39. $apl_spec_arr["6"]="xxx";
  40.  
  41.  
  42. for ($i=0;$i<$numrows;$i++) {
  43.    $row=mysql_fetch_array($exec,$i);
  44.    $apl_spec_str="";
  45.    for ($j=1;$j<=6;$j++) {
  46.        if ($row["apl_spec$j"]=="t")
  47.            $apl_spec_str.=$apl_spec_arr[$j] . " / ";
  48.    }
  49.    $apl_spec_str = ereg_replace(' / $',"",$apl_spec_str);
  50.    echo '
  51. <tr>
  52.  <td>' . ($i+1) . ' </td>
  53.  <td>' . $row["submitdate"] . '</td>
  54.  <td><a href="#" onClick="window.open('details.php?apl_id=' . $row["apl_id"] . '','newwin','height=500,width=600,menubar=yes,location=no,top=5,left=250,resizable=yes,sc
  55. ollbars=yes'); return false;">' . $row["apl_lastname"] . " " . $row["apl_firstname1"] . " " . $row["apl_firstname2"] . '</a></td>
  56.  <td>'. $row["apl_city"] . '</td>
  57.  <td>'. $row["apl_teachmode"] . '</td>
  58.  <td>'. $apl_spec_str . '</td>
  59.  <td><a href="index.php?delete=' . $row["apl_id"] . '">usuń</a></td>
  60. </tr>';
  61. }
  62.  
  63. echo '</table>';
  64.  
  65.  
  66. include ("footer.html");
  67.  
  68. ?>



Parę funkcji było czysto postgresql'owych - zamieniłem w niektórych miejscach pg_ na mysql_ .
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.