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'];
:
'(int型) '$ POSTR''は無効なSQL構文のように見えます。バインドされたパラメータを使用するのではなく、クエリ内でint型にキャストしようとしているのはなぜですか? – rickdenhaan
良い点。だから私がやったことは、mysqli_queryコマンドの前に変数$ INTR =(int)$ POSTRを作成することでした。それから、無効部分を '$ INTR'に置き換えました。しかし、それでもデータベースの値は変更されませんでした。 –