2017-02-13 6 views
-1

Я пытаюсь закодировать пользовательскую систему. Я кодирую почти всю мою систему, кроме активации. Я могу выбрать и вставить данные в свою таблицу, но теперь могу попробовать активную учетную запись и застрять.Почему этот запрос UPDATE не обновляет мою таблицу?

<?PHP 
include "db_settings.php"; 
$stmt = $dbcon->prepare("UPDATE 'Kullanicilar' SET 'Aktivasyon' = ? WHERE 'KullaniciID'=?"); 
// execute the query 
$stmt->execute(array('1','5')); 

// echo a message to say the UPDATE succeeded 
echo $stmt->rowCount() . " records UPDATED successfully"; 
?> 

И я получаю сообщение об ошибке, как:

"0 записей ОБНОВЛЕНО успешно".

Это мой стол; http://i.imgur.com/PL2eD80.png

enter image description here

Я попытался, изменив свой «Aktivasyon» типа int в char, но он также не работает.


EDIT: Я пытаюсь сделать эту функцию;

 
function dataUpdate($tableName, $updateRow, $updateValue, $conditonRow, $conditionValue) 
{ 
     include "db_settings.php"; 
     $q = $dbcon->prepare("UPDATE $tableName SET $updateRow= ? WHERE $conditonRow= ?"); 
     $q->execute(array($updateValue,$conditionValue)); 
} 

Я также попробовать это:

 
      ... 
     $q = $dbcon->prepare("UPDATE `$tableName` SET `$updateRow`= ? WHERE `$conditonRow`= ?"); 
     ... 

Как я могу сделать эту функцию работать?

+0

проверить ваш db, что запись обновлена ​​или нет на самом деле? '$ stmt-> execute (array (1,5));' и filed должен быть 'int (small int, medium int или int)' –

+0

@ Проблема с вашими одинарными кавычками запроса. – Gulshan

+0

Спасибо, я понял! –

ответ

0

Вы используете неправильные кавычки. Вы в основном говорите «обновите эту таблицу, установите эту строку на что-то, когда строка KullaniciID равна строке ", которая, конечно же, не является истинной.

Вы должны использовать обратные метки `, если вы хотите указать имена столбцов. Тогда ваш запрос будет работать. Обычно вам даже не нужны те, но по какой-то причине мир MySQL всегда добавляет их.

Так, чтобы уточнить, это строка: 'KullaniciID', и это имя столбца: `KullaniciID`.

Также вы не должны отправлять целые числа в виде строк. Это вызывает дополнительные преобразования или даже ошибки с более строгими базами данных.

+0

Спасибо, я понял, но я пытаюсь сделать это как функцию, и я снова застрял. Не могли бы вы посмотреть мое редактирование? –

0

Синтаксис имеет ошибку, таблица и имя столбца не может использовать апостроф, пересмотреть SQL:

UPDATE `Kullanicilar` SET `Aktivasyon` = ? WHERE `KullaniciID` = ? 
    ^  ^ ^  ^  ^  ^
// Replace ' --> ` 
+0

Спасибо, я получил его, но я пытаюсь сделать это как функцию, и я снова застрял. Не могли бы вы посмотреть мое редактирование? –