クエリを書きました
mysql_query("insert into db_manufacturer(mfgName) values('$manufacturer')"
$manufacturer = ram's
またはsam's
などの場合、エラーが発生している場合sql
、このエラーを克服する方法。私が使用して""
いる場合は、dbに変数値ではなく変数を挿入します。
mysql_query("insert into db_manufacturer(mfgName) values('$manufacturer')")
そして、それはいつ$manufacturer
の"ram's"
ようになります
mysql_query("insert into db_manufacturer(mfgName) values('ram's')")
これは、値を閉じる区切り文字が 2 回表示されるため壊れています。つまり、一重引用符の数が奇数です。
今解決
mysql_query("
INSERT INTO db_manufacturer
(mfgName)
VALUES
('".mysql_real_escape_string($manufacturer)."')
");
優れた、簡単でスケーラブルで安全なアプローチは、パラメーター化されたクエリを使用することです。このようなクエリのパラメーターは、バインド変数と呼ばれます。
よく読んだ
ext/mysql
プレフィックス mysql_ で名前が付けられたすべての関数を提供する PHP 拡張機能全体は、PHP v5.5.0 で正式に非推奨となり、将来的に削除される予定です。したがって、またはのいずれPDO
かを使用しますMySQLi
よく読んだ
$manufacturer = mysql_real_escape_string($manufacturer);
mysql_query("insert into db_manufacturer(mfgName) values('$manufacturer')";
$manufacturer = mysql_real_escape_string($manufacturer);
mysql_query("insert into db_manufacturer(mfgName) values('$manufacturer')"
ただし、PDOまたはMySQLIのいずれかを使用することをお勧めします。
ここに素晴らしい記事があります:
mysql_real_escape_string
SQLステートメントで使用するために文字列内の特殊文字をエスケープするUse
$manufacturer = mysql_real_escape_string($manufacturer);
詳細:
http://php.net/manual/en/function.mysql-real-escape-string.php
非推奨ですが、探していますmysql_real_escape_string
。
しかし、PDOを忘れmysql_
て学ぶと、はるかに安全になります。