numaralı terminalde düzgün çalışır. Onaylandıktan sonra bir veritabanına yazılması gereken bazı form verilere sahibim. Bir sorgu dizesi oluşturur ve onu mysqli'ye iletirim, ancak birincil anahtarımın boş olamayacağı konusunda hata alıyorum. Bu boş değil ve mysql terminalinde sorgu dizisi düzgün yürütülür. MySqli hatası PHP'ye eklenir, ancak aynı sorgu dizisi
$query_string = "insert into podnosilac (ime, prezime, jmbg)
values (
aes_encrypt('". $mysqli->real_escape_string($_SESSION["ime"])."', @key_str, @init_vector),
aes_encrypt('". $mysqli->real_escape_string($_SESSION["prezime"])."', @key_str, @init_vector),
aes_encrypt('". $mysqli->real_escape_string($_SESSION["jmbg"])."', @key_str, @init_vector)
)";
if (!$mysqli->query($query_string)) {
echo $mysqli->error;
}
Bu
Sadece sorgu hattı> mysqli- yukarıda onu yankı zaman query_string $ değeridir: Nitekim olarakinsert into podnosilac (ime, prezime, jmbg)
values (aes_encrypt('ivana', @key_str, @init_vector), aes_encrypt('corovic', @key_str, @init_vector), aes_encrypt('12345678910', @key_str, @init_vector))
bu çizgiyi çalıştığınızda:
$mysqli->query("insert into podnosilac (ime, prezime, jmbg)
values (aes_encrypt('ivana', @key_str, @init_vector), aes_encrypt('corovic', @key_str, @init_vector), aes_encrypt('12345678910', @key_str, @init_vector))");
Hala "Sütun 'jmbg' değeri boş olamaz" alıyorum.
aes_encrypt ile ilgili bir şey. @key_str ve @init_vector veritabanı üzerinde tanımlanmıştır, belki de bu onları geçmek için bir yol değil mi?
Bu neden olabilir?
1) Doğru veritabanına
2) veritabanına bağlantı oluştururken bu mysql değişkenleri ayarlamıyorsanız bağlanmıyorsunuzdur:
@key_str ve @init_vector nerede tanımlıdır? –
Birincil anahtar otomatik artışınız var mı? –
aldığınız hata nedir? – Unex