mysqlデータベースに行を挿入するときには、文字列の値を引用符で囲む必要があります。PHP MySQLの自動見積もり?
フィールド名と値の配列をサードパーティ関数に渡すだけで、文字列値を引用符で囲む心配はありません。これを自動的に処理するクラスまたはライブラリがありますか?
おかげで、
mysqlデータベースに行を挿入するときには、文字列の値を引用符で囲む必要があります。PHP MySQLの自動見積もり?
フィールド名と値の配列をサードパーティ関数に渡すだけで、文字列値を引用符で囲む心配はありません。これを自動的に処理するクラスまたはライブラリがありますか?
おかげで、
引用だけではなく、それ以上のことを心配する必要があります。 SQLインジェクションについて心配する必要があります。
新しいコードについては、mysql_
またはmysqli_
の代わりにPDOを使用してください。 PDO内では、準備されたステートメント(PDOStatement
オブジェクト)を使用します。
準備済みの文では、引用符で囲む必要はなく、SQLインジェクションを停止します。
あなたがPDOを使用する場合は、あなたがそのようなことを心配する必要はありません。
いくつかの例については、PDO::prepareをご覧ください。
私がdrupalを使用しているとき、デフォルトの動作はdb_query("SELECT col FROM tab WHERE id=%d",$id)
です。
これは、最初にmysql_real_escape_string
とsprintf
を使用した場合と似ています。そして、あなたは彼らがpreg_replace_callback()
メソッドを使用することに注意し、code they showから、それを自分で実装することができ、あなたはそれをクリックすることができます。..
伝統的な方法を、あなたはPDOを無視した場合(推奨しません):
<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>