コードを次のように変更して、安全で機能的なものにします。
<?php
// Connect to the database
mysql_connect ("localhost","Username","Password")
or die ('Error: ' . mysql_error());
echo "connected to database!";
mysql_select_db ("Database");
// Insert data into table
$Email= mysql_real_escape_string($_POST['Input2']);
$Name= mysql_real_escape_string($_POST['Input3']);
$Company= mysql_real_escape_string($_POST['Input4']);
$Price= mysql_real_escape_string($_POST['Input5']);
$action = mysql_real_escape_string('insert php code for button here');
$query = "INSERT INTO CustomerInformation
(Email,Name,Company,Price,Tab Count,Action)
VALUES
('$Email', '$Name', '$Company', '$Price', '$action') ";
mysql_query($query) or die ('Error updating database');
echo "Database updated successfully!";
?>
id
を挿入する必要はないことに注意してください テーブルに。自動インクリメントフィールドid
がある場合 MySQLが自動的にIDを作成します。mysql_real_escape_string()
値をエスケープします あなたのために。常に$var
を囲みます '
を使用したクエリで 一重引用符またはmysql_real_escape_string()
しません 動作します!列/テーブルまたはデータベース名には使用せず、値にのみ使用してください。
詳細については、次の質問を参照してください:
一般的なSQLインジェクション:「ボビーテーブル」からのSQLインジェクションはどのように行われますか「XKCDコミック作品?
動的テーブル名を使用する場合のSQLインジェクションからの保護:動的テーブル名でSQLインジェクションを防ぐ方法は?