Zminky se nesesly mozna i proto, ze se snazili resit jenom aktualni stav + to ze nebyl dostatecny popis. Oznacit nejaka chyba, ... je k nicemu. To podle me neznamena ze Ti lide prepared statement nikdy nepouzivali. Pokud by slo o jeden z prvnich kroku tak takto asi zacinal kazdy. A pak se z tech dotazu osypal a zacal ty PreparedStatementy pouzivat.

Jinak samozrejme ze je nejlepsi pouzit bud prepared statement, nebo nejaky ORM. O tom tady myslim nikdo nepochybuje.

Pekny den
Pet

On Thu, 21 Dec 2006 17:46:16 +0100, Podlesak Kamil <[EMAIL PROTECTED]> wrote:

Zdravim,

Jedine spravne reseni je pouzit PreparedStatement:

 Date b = new java.sql.Timestamp(System.currentTimeMillis());
String sql = "SELECT * FROM tasks WHERE id_user=? WHERE datum_splneni <= ? ORDER BY datum_vlozeni ASC";
 PreparedStatement stmt = dbConn.prepareStatement(sql);
 stmt.setString(1, id_user);
 stmt.setDate(2, b);

Nejenom ze to bude fungovat na MySQL, ale i na vsech ostatnich databazich. A jako bonus nebude mit nahodny navstevnik otevreny pristup do databaze! (SQL Injection)

Neodpustim si poznamku:
Plaintextove sestavovani SQL (navic bez escapovani) je zcela bezna zacatecnicka chyba. Kazdy z nas tim prosel. Ale ze se na tento dotaz sesly hned tri odpovedi bez jedine zminky o PreparedStatement, to je docela... prekvapive.


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Michal Davídek
Sent: Thursday, December 21, 2006 5:10 PM
To: [email protected]
Subject: OT: mysql a java


Zdravím, mám začátečnický dotaz.

    mám v mysql tabulku se sloupcem datum, formát nastaven na "DATE".
(formátuje to takhle: 2006-12-21)

    potřebuji z tabulky vybrat záznamy, které mají DATE menší
než třeba
dnešní datum, ale nedaří se mi to.

    prikazy:
    Date b =new Timestamp(new Date().getTime());
    String sql = "SELECT * FROM tasks WHERE id_user='" +id_user+ "'
WHERE datum_splneni <= "+b+" ORDER BY datum_vlozeni ASC";
    vim, ze to bude tim nastaveni Date b; ale nevim, jak z toho mam
vytáhnout údaj, který by mysql akceptoval, takhle to pořád
hází nějaké
errors.

    poradíte? díky. M.


--
Kamil "podlesh" Podlesak



--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Odpovedet emailem