PHP / MySQL Güncelleme kodu [kapalı]

6 Cevap php

Ben php bir MySQL veritabanı için bir satır güncelleştirme aramaya çalışıyorum. Dışarı başarısız ama biçimli bir ekleme yeni bir satır aramaya çalıştığınızda sadece aynı çalışır.

$result = mysql_query("INSERT INTO auth (username, password, studycode, description, server) VALUES ('$username', '$password', '$studycode', '$description', '$server')");

ama bu kod başarısız

$result = mysql_query("UPDATE auth SET username='$username', password='$password', studycode='$studycode', description='$description', server='$server' WHERE index='$id' LIMIT 1;");

dizin tablo için ilk sütun ve anahtar / id.

Edit: Ok so i just went into mysql admin and tried the exact command my code would have sent to track the error.

UPDATE auth SET username='username', password='password', studycode='ab9102y', description='test change', server='server2' WHERE index='5' LIMIT 1;

bana hata veriyor

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index='5' LIMIT 1' at line 1

6 Cevap

Muhtemelen endeksi ile ayrılmış anahtar kelime sorunu. Deneyin:

$result = mysql_query("UPDATE auth SET username='$username', password='$password', studycode='$studycode', description='$description', server='$server' WHERE `index` ='$id'");

Ben kelime index MySQL ayrılmış bir sözcüktür çünkü inanıyorum. Orada sizin nerede fıkra değiştirmek gerekir için:

WHERE `index` = '$id'

Dizin etrafında keneler dikkat edin.

Ben genellikle bu gibi benim tabloları isim bu sorunları önlemek için: (. Ex için kullanıcıların tablo)

> CREATE TABLE usr_user (
>          usr_id INT,
>          usr_name VARCHAR(100),
>          usr_email VARCHAR(100) );

On a side note: Learn about prepared statements; I would be very scared of using the SQL code you have there.

Hata mesajı bakılırsa çevresindeki tırnak kaldırmayı deneyin $id. Ben bazı tür bir int varsayıyorum.

Bunun yerine "GÜNCELLEME auth" nin "atuh UPDATE" var. Buradan veya kod içinde hata Yazım?

EDIT: index = '$ id' etrafında tırnak kaldırmayı deneyin ve aynı zamanda PHP sizin sorgularından virgül kaldırmak istiyorum.

Bu deneyin

$ Result = mysql_query ("UPDATE auth SET username = '$ kullanici', password = '$ sifre', studycode = '$ studycode', açıklama = '$ aciklama', server = '$ server' WHERE indeksi = '$ id' ");