Insert Odd Mysql sorunu

4 Cevap php

Hy hepsi

Emin burada neler oluyor, ama ben bu çalıştırırsanız değilse:

$query = 'INSERT INTO users 
(`id`, `first_name`, `second_name`, `register_date`, `lastlogin_date`) 
VALUES 
("'. $user_id . '", "' . $first_name .'", "'. $second_name . '", "' . $date . '", "' . $date . ");'; 
$result = mysql_query($query);

Ben hiçbir getiri elde, ama bu onu değiştirmek o gayet iyi:

$query = 'INSERT INTO users (`id`, `first_name`, `second_name`, `register_date`, `lastlogin_date`) 
VALUES ("21021212", "Joe", "Bloggs", "20090202", "20090202");'; 
$result = mysql_query($query);

Kullanıcı id = Bigint (20)

ilk isim = varchar (30)

ikinci isim = varchar (30)

tarih = int (8)

İlk başta ben bu değişkenler ile bir sorun olduğunu düşündüm ama onlar tam olarak aynı olan ve hala çalışmıyor.

Herhangi bir yardım takdir.

4 Cevap

mysql_real_escape_string ile tüm veritabanı girdileri kaçan alışkanlık haline getirin - gerçekten, sen PDO veya ADODb Bunu yapmanıza yardımcı olmak gibi sargının çeşit kullanmak gerekir, ancak burada olmadan bunu nasıl bulunuyor:

$query = sprintf("INSERT INTO users ".
    "(id, first_name, second_name, register_date, lastlogin_date)".
    "VALUES('%s','%s','%s','%s','%s')",
    mysql_real_escape_string($user_id),
    mysql_real_escape_string($first_name),
    mysql_real_escape_string($second_name),
    mysql_real_escape_string($date),
    mysql_real_escape_string($date));

 $result = mysql_query($query);

ve aynı zamanda mysql_error ile hataları kontrol

 if (!$result)
 {
     echo "Error in $query: ".mysql_error();
 }

"Mysql_error ()" den sonuç nedir? Şey çalışıyor gibi görünmüyor, özellikle eğer, her zaman, bu kontrol.

Ayrıca, gerçekten neye benzediğini görmek için $ sorgu echo. Söylüyorum olabilir.

Belki değeri $date idi "1111'); DELETE FROM users;"?

Cidden? Sorun şu ki, size veritabanı ile nasıl etkileşim değil mi. Size sorgu ile veri geçen olmamalıdır. Sen sorgu, sorgu için parametreleri belirlemek ve sorgu çalıştırdığınızda gerçek parametre değerleri geçmesi gerekir. Başka bir şey, verimsiz güvensiz ve sahip biri gibi hatalar eğilimli.

Eğer veritabanı özelliğini aradığınız çünkü PDO veya parametrized sorguları destekler şey kullanarak, sorunların bu tür gitmek bulacaksınız. Ayrıca, çok daha güvenli ve veritabanı hızlandırabilir.

$sth = $dbh->prepare("INSERT INTO users (`id`, `first_name`, `second_name`, `register_date`, `lastlogin_date`) VALUES (?,?,?,?,?)")
$sth->execute(array($user_id ,$first_name , $second_name , $date, $date ));