sviesc Posted December 12, 2004 Report Share Posted December 12, 2004 ir ideja izveidot dinamiskus sql pieprasījumus t.s. if(...){ $sql = "where id='$id'"; } else { $sql = "where id2='$id2' AND id='$id'"; } bet problēmas rodas mainīgajos saglabājot parametrus, kuri satur nežēlīgi daudz '' vai "" php apjūk ir kādas idejas šādu pieprasījumu veidošanā? vai varbūt ieteikumi kā labāk kā nē? ā un vai ir iespējams (droši vien, ka ir ar php gandrīz visu tak var dabūt gatavu :P) $manīgajos saglabāt ne visu sql pieprasījumu ar visiem select * from etc, bet teiksim tikai where daļu vai like daļu vai sazina ko citu un ar php palīdzību pie konkrētā gadījuma just izsaukt... Link to comment Share on other sites More sharing options...
Kaklz Posted December 12, 2004 Report Share Posted December 12, 2004 $params = array('viens'=> 'divi', 'triis' => 'cetri', 'pieci' => 'sesi' ); $sqlWhereParts = array(); foreach ($params as $key => $value){ $sqlWhereParts[] = $key . '="' . $value . '"'; } $sqlQuery = 'SELECT * FROM tabula WHERE ' . join(' AND ', $sqlWhereParts); Link to comment Share on other sites More sharing options...
ivka Posted December 28, 2004 Report Share Posted December 28, 2004 bet problēmas rodas mainīgajos saglabājot parametrus, kuri satur nežēlīgi daudz '' vai "" php apjūkir kādas idejas šādu pieprasījumu veidošanā? vai varbūt ieteikumi kā labāk kā nē? Tipa tā - nesapratu precīzi ko domāji, bet doma tāda, ka jā, patiešām ar apostrofiem un pēdiņām iekš PHP ir liela ķēpa. Iesaku iekš php.ini uzstādīt magic_quotes_gpc=off un tālāk rīkoties sekojoši: 1) pirms kādu stringu liekam iekšā SQL statementā, izpildam uz viņa addslashes() 2) pirms kādu stringu (kas ir izselektēts no SQL) izvadīt HTMLā, izpildam uz viņa htmlspecialchars(). Un nebūs problēmu, ja vien neaizmirsīsi šīs 2 funkcijas pareizajās vietās lietot. Link to comment Share on other sites More sharing options...
Kaklz Posted December 28, 2004 Report Share Posted December 28, 2004 1) pirms kādu stringu liekam iekšā SQL statementā, izpildam uz viņa addslashes() 12384[/snapback] addslashes() vietā labāk izmantot atbilstošo DBVS funkciju, piemēram, mysql_real_escape_string(), sqlite_escape_string() vai vēl kādu citu. Vienkārši dažādām DBVS ir dažādi uzskati par to, kā ir jāizvairās no ', " un citiem jūtīgajiem simboliem ;) 2) pirms kādu stringu (kas ir izselektēts no SQL) izvadīt HTMLā, izpildam uz viņa htmlspecialchars(). 12384[/snapback] atkarīgs no tā, vai tu gribi redzēt HTML, vai nē :P Link to comment Share on other sites More sharing options...
Recommended Posts