属性に基づいて、HTML ページから MySQL データベースにデータを追加するにはどうすればよいですか?
すでにスクレイピングされたデータですが、リンクをテーブルの特定のフィールドにインポートし、それらからいくつかのものを削除し(うまくいきません)、別のものをテーブルの別のフィールドに削除したいと思います。
PHP/MySQL と Linux があります。curl を使用する必要がありますか? また、使用する場合、実際に MySQL DB にデータを追加するにはどうすればよいですか?
データを挿入および更新するためのPHPの例:
//***************************************
// Connect to database
//
mysql_connect('127.0.0.1','MyUserName','MyPassword',false,MYSQL_CLIENT_SSL|MYSQL_CLIENT_COMPRESS);
mysql_select_db('MyDatabase');
// If you work with UTF-8 it would be a good idea to set the character set as well to be sure.
//mysql_set_charset('utf8_general_ci');
//***************************************
// Insert new data
//
$MyURL = mysql_real_escape_string("http://www.exampledomain.com/product/");
$Result = mysql_query("INSERT INTO ProductTable (URLField) VALUES ('".$MyURL."')");
if($Result)
print mysql_affected_rows();
//***************************************
// Update existing data
//
$MyURL = mysql_real_escape_string("http://www.exampledomain.com/newproduct/");
$RecordID = 123;
$Result = mysql_query("UPDATE ProductTable SET URLField='".$MyURL."' WHERE ID=".$RecordID);
if($Result)
print mysql_affected_rows();
mysql_connect()を使用してMySQLサーバーに接続し、mysql_select_db()を使用してデータベースを選択します。私はネイティブ英語ではないので、UTF-8を使用してすべての特殊文字を正しく取得します。これが必要ない場合は、この行を無視できます。
SQLサーバーに入るすべてのデータはサニタイズする必要があります。つまり、引用符などの制御文字をエスケープする必要があります。変数$MyURLは、SQLステートメントで使用される前にmysql_real_escape_string()でサニタイズされます。
SQLステートメントはmysql_query()で実行され、 trueまたはfalseを返します(INSERTおよびUPDATEステートメントの場合)。mysql_affected_rows ()を使用すると、SQLステートメントの影響を受けた行数を確認でき、期待どおりに機能したかどうかを確認できます。
次に、単一の列や行のデータを変更するUPDATEの例を示します。$ RecordID変数は、更新するレコードIDです(更新するレコードを知っている必要があります)。この例では、単一のレコードを特定しています。WHERE句を変更することで、多数の行全体を同時に更新できます。例えば
UPDATE ProductTable SET URLField='".$MyURL."' WHERE URLField='http://www.exampledomain.com/oldproduct/'
...フィールドURLFieldに「http://www.exampledomain.com/oldproduct/」があるすべての行を更新します。
これでしばらくはうまくいくと思います...
http://us3.php.net/manual/en/function.mysql-query.php
次に、「INSERT INTO table_name(column1、column2)VALUES('Testing'、'Testing 2')」のようなMySQLクエリを使用します。