素晴らしいサイト、私は自分で修正した単純な問題に出くわしましたが(確かに)、私は自分の修正を真の解決策ではなくボッジと呼んでいるので、ここで本当の答えを求めています.
PHP でいくつかの単純なデータを mysql データベースに書き込むために、次の $sql 文字列があります。
$sql="INSERT INTO $db_name.$tbl_name (`game_id` ,`user_id` ,`scores`) VALUES (NULL , $session_id, $scores_csv)";
$scores_csv には '60,90,45,26,41,80' のようなものが含まれていますが、上記のコードは機能しませんか?? 上記のコードを次のコードに置き換えると、動作します:-
$sql="INSERT INTO $db_name.$tbl_name (`game_id` ,`user_id` ,`scores`) VALUES (NULL , $session_id, '60,90,45,26,41,80')";
私は $sql をエコーアウトし、カンマ区切りのリストを含む文字列には、最初のコード例では一重引用符が含まれていませんが、2 番目のコード例では含まれているため、機能します。
そのため、一重引用符を含めない場合は文字列ですが、データベースの不一致があり、データが保存されていません。
MYSQL に送信する前に $scores_csv 変数を一重引用符で囲むと動作しますが、より良い解決策があることは確かです。文字列がテキスト文字列であり、数字の集まりではないことを Mysql に伝えるにはどうすればよいでしょうか。それは単純なことですが、これまでにこれに出くわしたことはありません。
ありがとうポール