2017-11-16 9 views
-3

内のデータは私が は、PHPとMySQL

は、私は、次のコードを書きましたが、それは常に0とデシベルを記入し、それが次のエラーメッセージを示していたデータの正規化を行いたい正規化します。致命的なエラー:SQL構文にエラーがあります。キャッチされていない例外

// normalizaiton 
$queryNorm0= $this->db->query("SELECT score from score where customer_id =".$customer_id." "); 
foreach ($queryNorm0->rows as $scoreV) 
{ 
    $scoreValue= $scoreV['score']; 

    $queryNorm= $this->db->query(" SELECT MIN(`score`) as mins, MAX(`score`) as maxs FROM score WHERE customer_id= ".$customer_id.""); 
if($queryNorm->num_rows > 0) 
{ 
$normValue= ($scoreValue - $queryNorm->row['mins'])/ (($queryNorm->row['maxs']) - ($queryNorm->row['mins'])); 
    $queryNorm2= $this->db->query("insert into score set normalized= ".$normValue." WHERE score= ".$scoreValue.""); 
} 
} 

助けが必要ですか?

+1

あなたは構文エラーがあるか、データベースに「0」を記入していますか?もしあればエラーを投稿してください。 – jeroen

+1

どのようなエラーメッセージが表示されますか?問題が何であるか教えていただけない場合はどうすればいいですか –

+2

@ user2148116以前と同じくらい多くの情報が含まれているので、これは間違いなくエラーメッセージではありません。システムをデバッグし、意味のある*エラーメッセージを追加してください。 –

答えて

1

は、このコードは、プリペアドステートメントを使用している

$mysqli = new mysqli($hostname, $username, $password, $dbname); 
    $customer_id='Your_Customer_Id'; 
    $query = "SELECT score from score where customer_id =?"; 
    $stmt = $conn->prepare($query); 
    $stmt->bind_param("s", $customer_id); 
    $stmt->execute(); 
    $res = $stmt->get_result(); 
    $data = $res->fetch_all();; 

を更新しました。より安全で、クエリをエスケープしないようにします。あなたのコードの問題は、使用していた二重引用符があなたのクエリをエスケープしていたことでした。それがエラーの原因です。 prepared statements

+0

私の答えが更新されました。指摘してくれてありがとう。 – pr1nc3

+0

非常によく、私はupvoteに変更しました –

+0

@ pr1nc3あなたのポイントを取得していない – user2148116