-1

クエリを書きました

mysql_query("insert into db_manufacturer(mfgName) values('$manufacturer')"

$manufacturer = ram'sまたはsam'sなどの場合、エラーが発生している場合sql、このエラーを克服する方法。私が使用して""いる場合は、dbに変数値ではなく変数を挿入します。

4

5 に答える 5

2
 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)."')
");

優れた、簡単でスケーラブルで安全なアプローチは、パラメーター化されたクエリを使用することです。このようなクエリのパラメーターは、バインド変数と呼ばれます。

よく読んだ

  1. PHPでSQLインジェクションを防ぐには?
  2. SQL インジェクションを防ぐには、PDO 準備済みステートメントで十分ですか?

ノート

  1. ext/mysqlプレフィックス mysql_ で名前が付けられたすべての関数を提供する PHP 拡張機能全体は、PHP v5.5.0 で正式に非推奨となり、将来的に削除される予定です。したがって、またはのいずれPDOかを使用しますMySQLi

よく読んだ

  1. mysql 拡張機能は非推奨であり、将来削除される予定です。代わりに mysqli または PDO を使用してください
  2. MySQL 開発者向け PDO チュートリアル
  3. 初心者向け Pdo チュートリアル
于 2013-01-14T07:21:55.823 に答える
1
$manufacturer = mysql_real_escape_string($manufacturer);
mysql_query("insert into db_manufacturer(mfgName) values('$manufacturer')";
于 2013-01-14T06:29:11.020 に答える
1
$manufacturer = mysql_real_escape_string($manufacturer);
mysql_query("insert into db_manufacturer(mfgName) values('$manufacturer')"

ただし、PDOまたはMySQLIのいずれかを使用することをお勧めします。

ここに素晴らしい記事があります:

于 2013-01-14T06:29:29.783 に答える
0

mysql_real_escape_stringSQLステートメントで使用するために文字列内の特殊文字をエスケープするUse

$manufacturer = mysql_real_escape_string($manufacturer);

詳細:

http://php.net/manual/en/function.mysql-real-escape-string.php

于 2013-01-14T06:29:59.437 に答える
0

非推奨ですが、探していますmysql_real_escape_string

しかし、PDOを忘れmysql_て学ぶと、はるかに安全になります。

于 2013-01-14T06:30:21.550 に答える