アポストロフィを含む可能性のある値を挿入する SQL ステートメントを作成するにはどうすればよいでしょうか(たとえば、ある人の姓は Conner で、別の人の姓は O'Conner でした)。いくつかの検索の後、二重アポストロフィ ( O''Conner example
) を使用する例を見つけましたが、各例では、INSERT
. 値にアポストロフィが含まれる場合と含まれない場合がある例に出くわしたことはありません。
私の単純なステートメントは、アポストロフィが使用されていない場合は問題ありませんが、アポストロフィが使用されている場合は失敗します。を使用してアポストロフィを置き換えることができることはわかっていますstr_replace
が、明らかに、それによって O'Conner の例が OConner として表示されます。
例として、簡略版を次に示します。
page1.php
// PHP
include_once('phpdata.php');
if (isset($_POST['firstname']) && isset($_POST['lastname'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
// SQL connection
$insert = doInsert($firstname, $lastname);
// Execute statement using odbc_exec, etc.
}
// HTML
<input type="text" class="required" name="firstname" id="firstname" />
<input type="text" class="required" name="lastname" id="lastname" />
phpdata.php
function doInsert($firstname, $lastname) {
$insert = "INSERT INTO mytable (firstname, lastname)
VALUES ('$firstname', '$lastname')";
return $insert;
}