-1

こんにちは、mysql データベースに挿入したいのですが、最初にテーブルのブラックリストで電子メールが利用できないかどうかを確認したいと思います。メールがブラックリストにある場合、挿入を無視したい。

$sqlinsertqueue = "
INSERT INTO queue Set
email = '$email'"
mysql_query($sqlinsertqueue,$db);

私のブラックリストにはフィールドメールもあります。ブラックリストのテーブル名はブラックリストです。

4

2 に答える 2

1

私がこれを言う前に@EdGibbsが彼の答えを削除したので、彼は正しい軌道に乗っていましたINSERT ... SELECT

INSERT INTO queue (email) 
  SELECT 'dummy@example.com' FROM DUAL
  WHERE 'dummy@example.com' NOT IN (SELECT email from Blacklist);

でテストする SQLfiddle

非推奨のAPIの代わりにPDOorを使用するか、少なくともメール アドレスを SQL クエリに挿入する前に実行することをお勧めします。MySQLimysql_*mysql_escape_string()

于 2013-05-24T17:23:37.220 に答える