Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]LOCK TABLES
Forum PHP.pl > Forum > Przedszkole
sitak
  1. <?php
  2. function SendSimpleMessage ( $Owner, $Sender, $Time, $Type, $From, $Subject, $Message) {
  3.    global $messfields;
  4.  
  5.    if ($Time == '') {
  6.        $Time = time();
  7.    }
  8.  
  9.    $QryInsertMessage  = "INSERT INTO {{table}} SET ";
  10.    $QryInsertMessage .= "`message_owner` = '". $Owner ."', ";
  11.    $QryInsertMessage .= "`message_sender` = '". $Sender ."', ";
  12.    $QryInsertMessage .= "`message_time` = '" . $Time . "', ";
  13.    $QryInsertMessage .= "`message_type` = '". $Type ."', ";
  14.    $QryInsertMessage .= "`message_from` = '". addslashes( $From ) ."', ";
  15.    $QryInsertMessage .= "`message_subject` = '". addslashes( $Subject ) ."', ";
  16.    $QryInsertMessage .= "`message_text` = '". addslashes( $Message ) ."';";
  17.    doquery( $QryInsertMessage, 'messages' );
  18.    
  19.    
  20.  
  21.    $QryUpdateUser  = "UPDATE {{table}} SET ";
  22.    $QryUpdateUser .= "`".$messfields[$Type]."` = `".$messfields[$Type]."` + 1, ";
  23.    $QryUpdateUser .= "`".$messfields[100]."` = `".$messfields[100]."` + 1 ";
  24.    $QryUpdateUser .= "WHERE ";
  25.    $QryUpdateUser .= "`id` = '". $Owner ."';";
  26.    doquery( $QryUpdateUser, 'users');
  27.    
  28.    
  29.  
  30. }
  31. ?>

Po dopisaniu do powyższej funkcji kodu:
  1. <?php
  2. $QryInsertMessage  = "INSERT INTO {{table}} SET ";
  3.    $QryInsertMessage .= "`message_owner` = '". $Owner ."', ";
  4.    $QryInsertMessage .= "`message_sender` = '". $Sender ."', ";
  5.    $QryInsertMessage .= "`message_time` = '" . $Time . "', ";
  6.    $QryInsertMessage .= "`message_type` = '". $Type ."', ";
  7.    $QryInsertMessage .= "`message_from` = '". addslashes( $From ) ."', ";
  8.    $QryInsertMessage .= "`message_subject` = '". addslashes( $Subject ) ."', ";
  9.    $QryInsertMessage .= "`message_text` = '". addslashes( $Message ) ."';";
  10.    doquery( $QryInsertMessage, 'messages1' );
  11. ?>

dostaje błąd
Table 'game_messages1' was not locked with LOCK TABLES
INSERT INTO game_messages1 SET `message_owner` = '1', `message_sender` = '', `message_time` = '1249030741', `message_type` = '5', `message_from` = 'Kontrola lotu', `message_subject` = 'Transport Floty', `message_text` = 'Jedna z Twoich flot osiągneła Kolonia [1:1:1]. Dostarczyła 1 jednostek Metal, 0 jednostek Kryształ i 0 jednostek Deuter.';


Da sie to zrobić w jakiś prosty sposób questionmark.gif
Fifi209
Spróbuj użyć poprawnej składni...

  1. INSERT INTO (`pole`, `pole`, `pole`) VALUES(`wartosc`, `wartosc`, `wartosc`)
sitak
Spróbowałem:
  1. <?php
  2. $query="INSERT INTO game_messages1 (
  3. `message_id` ,
  4. `message_owner` ,
  5. `message_sender` ,
  6. `message_time` ,
  7. `message_type` ,
  8. `message_from` ,
  9. `message_subject` ,
  10. `message_text`
  11. )
  12. VALUES (
  13. NULL , '1', '1', '1', '1', '1', '1', '1'
  14. )";
  15. $wynik=mysql_query($query);
  16. if($wynik)
  17.      {
  18.      
  19.      print ("Dodano poprawnie do bazy  " );
  20.    }
  21.      else
  22.      {
  23.       print ("Nie udalo sie dodac do bazy");
  24.      }
  25. ?>

poprzedniego błedu nie pokazuje ale niestety nie odadje do bazy ;/ zawsze print ("Nie udalo sie dodac do bazy");
Fifi209
Liczb nie daje się w apostrofy to po pierwsze. Po drugie message_id ma auto_increment ?
sitak
Tak message_id ma auto_increment
Fifi209
Póki co nie widzę połączenia z bazą danych...

Pokaż też funkcję:
  1. <?php
  2. doquery();
  3. ?>
sitak
  1. <?php
  2.  
  3. function doquery($query, $table, $fetch = false){
  4.  global $link,$debug,$xnova_root_path;
  5.  
  6.    @include($xnova_root_path.'config.php');
  7.  
  8.    if(!$link)
  9.    {
  10.        $link = odbc_connect($dbsettings["server"], $dbsettings["user"],
  11.                $dbsettings["pass"]) or
  12.                $debug->error(odbc_error()."<br />$query","SQL Error");
  13.                //message(mysql_error()."<br />$query","SQL Error");
  14.        
  15.        odbc_select_db($dbsettings["name"]) or $debug->error(odbc_error()."<br />$query","SQL Error");
  16.    }
  17.    // por el momento $query se mostrara
  18.    // pero luego solo se vera en modo debug
  19.    $sqlquery = odbc_exec($query, str_replace("{{table}}", $dbsettings["prefix"].
  20.                $table)) or
  21.                $debug->error(odbc_error()."<br />$query","SQL Error");
  22.                //message(mysql_error()."<br />$query","SQL Error");
  23.  
  24.    unset($dbsettings);//se borra la array para liberar algo de memoria
  25.  
  26.    global $numqueries,$debug;//,$depurerwrote003;
  27.    $numqueries++;
  28.    //$depurerwrote003 .= ;
  29.    $debug->add("<tr><th>Query $numqueries: </th><th>$query</th><th>$table</th><th>$fetch</th></tr>");
  30.  
  31.    if($fetch)
  32.    { //hace el fetch y regresa $sqlrow
  33.        $sqlrow = odbc_fetch_array($sqlquery);
  34.        return $sqlrow;
  35.    }else{ //devuelve el $sqlquery ("sin fetch")
  36.        return $sqlquery;
  37.    }
  38.    
  39. }
  40.  
  41.  
  42.  
  43. // Created by Perberos. All rights reversed (C) 2006
  44.  
  45. ?>


Połaczenie z baza jest napewno , zreszta jak nic nie dopisywałem rekordy dodaja sie normalnie do bazy
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.