PHP Anormal Çalışmayan MySQL (Kayıt) Kodu?

ekutuker

Yeni üye
21 Ocak 2019
39
0
$addsql = "INSERT INTO accounts(name, surname, email, username, password) VALUES ('$rgi_name', '$rgi_surname', '$rgi_email', '$rgi_username', '$rgi_password_secure')"; $nextsql = mysqli_query($dbconn, $addsql);




Yukarıdaki kodu çalıştırdığımda ve echo kullandığımda $nextsql, 0 olarak tanımlanıyor yani kayıt olmuyor ve işlem geçersiz sayılıyor. Sebebi nedir?

XAMPP localhost, 80'inci port üzerinden >PHP 7.x.x çalıştırıldı.
Diğer projelerimde bir sıkıntı yaşamadım.
 

leaks

Katılımcı Üye
29 Eki 2018
864
1
Tablo yapısını, kodun tamamını ve hatayı görmeden bir şey söylemek zor. Ayrıca mysql_* fonksiyonları artık desteklenmiyor ve kullanılmıyor. Onun yerine PDO sınıfını kullanın.
Kod:
$db = new PDO ("mysql:host=localhost;dbname=veritabani;charset=utf-8", "username", "passwd");
$stmt = $db->prepare ("INSERT INTO user (mail, name, passwd) VALUES (?, ?, ?)");
$stmt->execute (array ($_POST["mail"], $_POST["name"], $_POST["passwd"]));
Ayrıca PDO sınıfı SQL injection'dan korunmanızı sağlıyor.
 

leaks

Katılımcı Üye
29 Eki 2018
864
1
$addsql = "INSERT INTO accounts(name, surname, email, username, password) VALUES ('$rgi_name', '$rgi_surname', '$rgi_email', '$rgi_username', '$rgi_password_secure')"; $nextsql = mysqli_query($dbconn, $addsql);




Yukarıdaki kodu çalıştırdığımda ve echo kullandığımda $nextsql, 0 olarak tanımlanıyor yani kayıt olmuyor ve işlem geçersiz sayılıyor. Sebebi nedir?

XAMPP localhost, 80'inci port üzerinden >PHP 7.x.x çalıştırıldı.
Diğer projelerimde bir sıkıntı yaşamadım.


Yukarıdaki cevabımda kodu örnek olarak yazmıştım. Sizin yapacağınız şeye uygun olan, hata kontrolü yapılan kod:
Kod:
[COLOR=#388038]define[/COLOR] [COLOR=#888888]([/COLOR][COLOR=#b83838]"DB_HOST"[/COLOR][COLOR=#888888],[/COLOR] [COLOR=#b83838]"localhost"[/COLOR][COLOR=#888888]);[/COLOR]
[COLOR=#388038]define[/COLOR] [COLOR=#888888]([/COLOR][COLOR=#b83838]"DB_NAME"[/COLOR][COLOR=#888888],[/COLOR] [COLOR=#b83838]"veritabaninin_adi"[/COLOR][COLOR=#888888]);[/COLOR]
[COLOR=#388038]define[/COLOR] [COLOR=#888888]([/COLOR][COLOR=#b83838]"DB_USER"[/COLOR][COLOR=#888888],[/COLOR] [COLOR=#b83838]"veritabani_kullanici_adi"[/COLOR][COLOR=#888888]);[/COLOR]
[COLOR=#388038]define[/COLOR] [COLOR=#888888]([/COLOR][COLOR=#b83838]"DB_PASSWD"[/COLOR][COLOR=#888888],[/COLOR] [COLOR=#b83838]"veritabani_parolasi"[/COLOR][COLOR=#888888]);[/COLOR]

[COLOR=#b04040]$db[/COLOR] [COLOR=#666666]=[/COLOR] [COLOR=#2838b0]null[/COLOR][COLOR=#888888];[/COLOR]
[COLOR=#2838b0]try[/COLOR]
[COLOR=#888888]{[/COLOR]
    [COLOR=#b04040]$db[/COLOR] [COLOR=#666666]=[/COLOR] [COLOR=#2838b0]new[/COLOR] PDO [COLOR=#888888]([/COLOR][COLOR=#b83838]"mysql:host="[/COLOR][COLOR=#666666].[/COLOR] DB_HOST [COLOR=#666666].[/COLOR][COLOR=#b83838]";dbname="[/COLOR][COLOR=#666666].[/COLOR] DB_NAME [COLOR=#666666].[/COLOR][COLOR=#b83838]";charset=utf8"[/COLOR][COLOR=#888888],[/COLOR]
                   DB_USER[COLOR=#888888],[/COLOR] DB_PASSWD[COLOR=#888888]);[/COLOR]
[COLOR=#888888]}[/COLOR]
[COLOR=#2838b0]catch[/COLOR] [COLOR=#888888]([/COLOR]\PDOException [COLOR=#b04040]$ex[/COLOR][COLOR=#888888])[/COLOR]
[COLOR=#888888]{[/COLOR]
    [COLOR=#2838b0]die[/COLOR] [COLOR=#b04040]$ex[/COLOR][COLOR=#666666]->[/COLOR][COLOR=#388038]getMessage[/COLOR] [COLOR=#888888]();[/COLOR]
[COLOR=#888888]}[/COLOR]

[COLOR=#b04040]$stmt[/COLOR] [COLOR=#666666]=[/COLOR] [COLOR=#b04040]$db[/COLOR][COLOR=#666666]->[/COLOR][COLOR=#388038]prepare[/COLOR] [COLOR=#888888]([/COLOR][COLOR=#b83838]"INSERT INTO accounts "[/COLOR]
                      [COLOR=#666666].[/COLOR] [COLOR=#b83838]"(name, surname, email, username, password)"[/COLOR]
                      [COLOR=#666666].[/COLOR] [COLOR=#b83838]"VALUES (?, ?, ?, ?, ?)"[/COLOR][COLOR=#888888]);[/COLOR]
[COLOR=#b04040]$stmt[/COLOR][COLOR=#666666]->[/COLOR][COLOR=#388038]execute[/COLOR] [COLOR=#888888]([/COLOR][COLOR=#2838b0]array[/COLOR] [COLOR=#888888]([/COLOR][COLOR=#b04040]$rgi_name[/COLOR][COLOR=#888888],[/COLOR] [COLOR=#b04040]$rgi_surname[/COLOR][COLOR=#888888],[/COLOR] [COLOR=#b04040]$rgi_email[/COLOR][COLOR=#888888],[/COLOR] [COLOR=#b04040]$rgi_username[/COLOR][COLOR=#888888],[/COLOR]
                       [COLOR=#b04040]$rgi_password_secure[/COLOR][COLOR=#888888]));[/COLOR]

[COLOR=#2838b0]if[/COLOR] [COLOR=#888888]([/COLOR][COLOR=#b04040]$stmt[/COLOR][COLOR=#666666]->[/COLOR][COLOR=#388038]rowCount[/COLOR] [COLOR=#888888]())[/COLOR]
[COLOR=#888888]{[/COLOR]
    [COLOR=#888888][I]/* işlem başarılı... */[/I][/COLOR]
[COLOR=#888888]}[/COLOR]
Yukarıdaki kodu kendinize göre düzenleyin...
Ayrıca hata alırsanız yukarıdaki arkadaşın dediği gibi PHP kurulumunuzu kontrol edin,
eğer PDO "php.ini" dosyasında comment'li haldeyse başındaki ';' karakterini kaldırın.
 

abom

Uzman üye
6 Mar 2008
1,573
92
Ocak' tan gelme...
Veri tabanında ki accounts tablosunun ilk sütunu (genellikle id dir) PRIMARY KEY yani otomatik sayıcı yaptınız mı?
kontrol eder misiniz?
Tabloda bulunup kayıt etmediniz bir sütun bulunmakta ise o sütunun boş olarak işaretlenmesi gerekir.
Mesela
"name, surname, email, username, password" sütunlarınız var birde" yetki" sütununuz var, siz yetkiye kayıt atamadığınız için kayıt almıyor.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.