Integer átadása html-ből mysql miért nem megy?
mysql egyik oszlopa INT típusú, ide vinnék föl adatot ,amit a user egy html form-on ad meg. Viszont form-on nem tudom, hogyan lehetne int-et beolvastatni.
Hiába írok be pl 28-at ide : <input type="text" name="pfr" /> textként értelmezi és nem teszi be db-be.
Viszont type-nak nem lehet int-et megadni.
Mi a teenedő?
(fontos , hogy int tipus megmaradjon mert később műveleteket végeznék vele)
Dobj kódot, hogyan küldöd és veszed át az adatokat, és utána, hogyan teszed azt be az adatbázisodba!
A PHP gyengén típusos nyelv, ezért a változó típusának nem kell problémát okoznia. Az a lényeg, amit adatbázisba küldesz, az csak szám karaktereket tartalmazzon.
Kapsz vmi hibaüzenetet?
Az lenne a tippem,hogy valahol hozzáadódott egy karakter esetleg plusz idézőjel,ami miatt nem konvertálódik automatikusan számmá.
var_dump-al írasd ki a változó tartalmát
"..., name = " . (int) $_POST['pfr'] . ", ..."
esetleg
"..., name = '" . (int) $_POST['pfr'] . "', ..."
itt a kód ( a nem érintett kód sorokat kihagytam) :
html:
<form action="felvisz.php" method="post">
pfr: <input type="text" name="pfr" />
<input type="submit" name="felvisz" value="hozzáad" />
</form>
felvisz.php:
<?php
$pfr=$_POST['pfr'];
if (!get_magic_quotes_gpc()){
$pfr = addslashes($pfr);
}
@ $sql = mysql_connect("hostname", "user", "password");
mysql_select_db("db_name", $sql);
$lekerdezes = "INSERT INTO players VALUES ($pfr )";
$talalat = mysql_query($lekerdezes, $sql );
if ($talalat) { echo 'adatai hozzá lettek adva' ;} else {echo 'Nem sikerült';}
mysql_close($sql);
?>
Ha viszont a $pfr-t nem az integer oszlopba hanem egy char tipusú oszlopba szúrnám be úgy gond nélkül megy.
Montihun: próbáltam (int)$_POST módszerrel , de így se sikerült.
ezzel esetleg?
$lekerdezes = "INSERT INTO players VALUES ('".$pfr."')";
Szvsz ez lehet a hiba:
!get_magic_quotes_gpc()
magic_quotes_gpc()
kikapcsolva értéke: 0;
bekapcsolva: 1;
A feltételed így soha nem teljesül.
Feltételnek akár így megadhatod:
magic_quotes_gpc()==0;
magic_quotes_gpc()==1;
vagy ezek negálása
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!