2017-02-13 10 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

私はcharに私の「Aktivasyon」タイプintを変更して試してみましたが、それはまた、動作しません。


EDIT: 私は、この関数にしようとしています。

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

がどのように私はこの機能を動作させることができます。

 
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)); 
} 

また、私はこれを試して?構文エラーがあり

+0

実際に更新されたかどうか、そのレコードを確認してください。 '$ stmt-> execute(array(1,5));'ファイルは '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

ありがとう、私はそれを持っていますが、私はこれを機能として作ろうとします、そして、私は再び立ち往生します。私の編集を見ていただけますか? –

関連する問題