1

私はこれをしばらく見つめていましたが、明らかなことを認識していないと思います。

結果の表示は 1064 です (mysql の参照では、構文エラーであると書かれています)

$query = "INSERT INTO members ( id , username , password , all , articles ) VALUES ( ";
    $query .= "'' , " ;
    $query .= $username . "' , '" ;
    $query .= $password . "' , '" ;
    $query .= $allVals . "' , ";
    $query .= "'' );";
    $result = mysqli_query($con, $query);
    if (mysqli_errno($con)){
            echo mysqli_errno($con);
            echo mysqli_connect_error($con);
    }

$allVals はエンコードされた json オブジェクトであることに注意してください。

クエリの何が問題になっていますか?

4

5 に答える 5

3
$query .= "'' , " ;

ここで一重引用符がありません。

$query .= "'' , '" ;

仕事をするべきです。

また、構文エラーがどこにあるかをよりよく確認するために、準備されたステートメントを使用することも検討します。このようにクエリを作成しようとすると、おそらくデバッグが難しくなります。

$stmt = $con->prepare("INSERT INTO members ( id , username , password , all , articles ) VALUES ( '', ?, ?, ?, '')");
$stmt->bind_param("sss", $username, $password, $allVals);
$stmt->execute();
/* ... */
于 2013-05-22T18:23:36.990 に答える
1

の後に一重引用符があるように見えますが、$username前にはありません。

$query = "INSERT INTO members ( id , username , password , all , articles ) VALUES ( ";
    $query .= "'' , '" ; //missed the quote here
    $query .= $username . "' , '" ;
    $query .= $password . "' , '" ;
    $query .= $allVals . "' , ";
    $query .= "'' );";
    $result = mysqli_query($con, $query);
    if (mysqli_errno($con)){
            echo mysqli_errno($con);
            echo mysqli_connect_error($con);
    }
于 2013-05-22T18:24:12.403 に答える
0

idまたは列にデータを挿入しない場合articlesは、それらをクエリ ステートメントの一部として含めないでください。

$query = "INSERT INTO members ( username , password , all ) VALUES ( '";
    $query .= $username . "' , '" ;
    $query .= $password . "' , '" ;
    $query .= $allVals . "' );";

    $result = mysqli_query($con, $query);
    if (mysqli_errno($con)){
            echo mysqli_errno($con);
            echo mysqli_connect_error($con);
    }

さらに、変数が適切にエスケープされていることを確認する必要があります。

于 2013-05-22T18:29:00.230 に答える
0

すべての値の後に common を配置する必要があります。

$query = "INSERT INTO members ( id , username , password , all , articles ) VALUES ( ";
$query .= "'' , '" ;
$query .= $username . "','" ;
$query .= $password . "', '" ;
$query .= $allVals . "' ";
$query .= ")";
$result = mysqli_query($con, $query);
if (mysqli_errno($con)){
        echo mysqli_errno($con);
        echo mysqli_connect_error($con);
}
于 2013-05-22T18:24:42.930 に答える