を呼び出すときに、これはあなたがそれはあなたがクラスメソッド
class shades {
function create($name, $shades, $slug, $shortDesc, $longDesc, $position){
$name = sanitize_paranoid_string($name);
$slug = slug($name);
$shortDesc = sanitize_sql_string($shortDesc);
$longDesc = sanitize_sql_string($longDesc);
$query = mysql_query("INSERT INTO products (type, name, slug, shortDesc, htmlDesc, position)VALUES('shades','$name','$slug','$shortDesc','$longDesc','$position')")or die(mysql_error());
$ID = mysql_insert_id();
assign($shades, $ID);
if($query) {return true;}
else {return false;};
}
function delassign($toID){
mysql_query("DELETE FROM assign WHERE type='shades' AND toID='$toID'")or die(mysql_error());
}
function assign($shades, $toID)
{
foreach($shades as $shade)
{
$result = mysql_query("INSERT INTO assign(type, typeID, toID)VALUES('shades','$shade','$toID')")or die(mysql_error());
if($result){echo "Added!";}
else{echo"Not Added!";}
};
}
}
サンプルコードは、[delphiign]の[SQL injection](http://unixwiz.net/techtips/sql-injection.html)の脆弱性があります。この穴を修正するには、旧式のmysqlドライバから[PDO](http://php.net/PDO)に切り替え、[prepared statements](http://www.php.net/PDO.prepared-statements)を使用してください。これは明示的なサニタイズよりも優れていることに注意してください。サニタイズするのを忘れることはできますが、プリペアドステートメントのパラメータで忘れることは何もありません(パラメータを忘れた場合PHPはエラーを生成します)。 – outis
... PDOチュートリアルが必要な場合は、「PHPとPDOでMySQLスクリプトを作成する」(http://www.kitebird.com/articles/php-pdo.html)を試してみてください。 – outis