SQLでは、文字列値を引用符で囲む必要があります:
VALUES ('value1', 'value2')"
変数を使用する場合:
VALUES ($var1, $var2)");
引用符が値自体に含まれていない限り、引用符は付けられません。
したがって、$var1 = 'value1'; $var2 = 'value2'
次に(変数が文字列に補間された後)、SQLは次のようになります。
VALUES (value1, value2)"
引用符を追加することで、当面の問題を解決できます:
VALUES ('$var1', '$var2')");
ただし、これで主要なセキュリティの脆弱性が修正されるわけではありません。 データがさまざまな方法でクエリを中断できるようにします。
変数から文字列を組み立ててSQLステートメントを作成することは避けてください 。このようにして、SQLインジェクションのセキュリティホールが発生します。 バインドされた引数 をサポートするインターフェースを使用します 。彼らはあなたのために引用と脱出を処理します。