2017-10-04 11 views
0

mysqli_queryでUPDATEコマンドを使用しようとしています。コードが実行されると、エラーは発生せず、mysqli_queryはnullを返します。私は以前、関数呼び出しが成功したかどうかをテストするコードを見つけ、鉱山は成功しました。しかし、なんらかの理由で私のSQLテーブルの値は変更されませんでした。私はテスト目的のために単に$ POSTR変数の代わりに整数を代入しようとしましたが、それでも変わらないでしょう。ここに私のコード:mysqli_queryとUPDATEコマンドが機能しない

<?php 

$response =array(); 

$con =new mysqli("localhost", "gs6", "gibson2010", "roomDB"); 
if(!$con): 
die('Connect Error (' . mysqli_connect_errno() . ') '. 
mysqli_connect_error()); 
endif; 

if(isset($_POST['R']) && isset($_POST['G']) && isset($_POST['B'])){ 
    $POSTR=$_POST['R']; 
    $POSTG=$_POST['G']; 
    $POSTB=$_POST['B']; 

    $result = mysqli_query("UPDATE `LEDstrip` SET `Value` = (int)'$POSTR' WHERE `Channel` = 'R'"); 

    $response["result"] = $result; 
} 
echo json_encode($response); 
exit(); 
?> 

私はこの問題を解決するために何ができますか?また、あなたが間違ったmysqli_queryを呼び出している$POSTR=(int)$_POST['R'];

+0

'(int型) '$ POSTR''は無効なSQL構文のように見えます。バインドされたパラメータを使用するのではなく、クエリ内でint型にキャストしようとしているのはなぜですか? – rickdenhaan

+0

良い点。だから私がやったことは、mysqli_queryコマンドの前に変数$ INTR =(int)$ POSTRを作成することでした。それから、無効部分を '$ INTR'に置き換えました。しかし、それでもデータベースの値は変更されませんでした。 –

答えて

0

問題は次のように変数とそれを使用したクエリに代わり(int)を使用するクエリ であると思われます。あなたは()メソッド

あなたのコードがなります$コン>クエリを呼び出す必要があり:

$POSTR=(int)$_POST['R']; 
$POSTG=$_POST['G']; 
$POSTB=$_POST['B']; 

    $result = $con->query("UPDATE `LEDstrip` SET `Value` = '$POSTR' WHERE `Channel` = 'R'"); 
+0

入力したとおりにこれを試しましたが、値は変更されませんでした。 –

+0

元の回答を変更しました。これが動作するかどうかを確認してください。 –

+1

これはうまくいきました。私はmysqli_queryデータベース接続パラメータが必要だと思います。ありがとうございました! –

関連する問題