0

私は中小企業のタイムシートを提出するためのウェブサイトを構築しました。SQLステートメントを使用して、ODBCを介してMicrosoftAccessデータベースにデータを送信します。説明ボックスで一重引用符を使用すると、エラーが発生することに気づきました。

私はこれを読み、多くの人が「クエリをパラメータ化する」と言うのを聞いていますが、それを行う方法がわかりません。

私のウェブサイトにはHTMLテキストボックスがあります

<textarea name="JobDescription" cols="75" rows="8" id="otherpurch"></textarea><br>  

これはフォームの一部であり、他のさまざまなものと一緒に送信されます。このボックスに入力された説明に一重引用符が含まれている場合、どのように対処しますか?'submit_form'というタイトルの.phpファイルがあり、これを実行する必要があると思います。クエリをパラメータ化するための一般的な手順は何ですか?私はそれについて少し混乱しています。

どんな助けでも大歓迎です!

データがテキストボックスからデータベースに送信される方法は次のとおりです。

$JobDescription=$_POST['JobDescription'];
$JobDescription=stripslashes($JobDescription);
$JobDescription=mysql_real_escape_string($JobDescription);

//make connection to database, bail if no connection
$connection = odbc_pconnect('db','','');
if (!$connection) { exit("Connection Failed: " . $connection); }

//Send data (usually there are many other variables being sent, but I removed them
//for the purposes of showing you just the text being sent from the description box

$sql = "INSERT INTO TimeSheet ('$JobDescription')";
$rs = odbc_exec($connection, $sql);
if (!$rs) { exit("Error in SQL"); 
4

1 に答える 1

1

パラメータ化されたSQLを使用する意図は正しく、ODBC経由のアクセスもそれをサポートしています。

の代わりに使用する関数については、 http: //php.net/manual/en/function.odbc-prepare.phphttp : //php.net/manual/en/function.odbc-execute.phpodbc_execを参照してください。

$JobDescription=$_POST['JobDescription']; // no escaping needed!

$connection = odbc_pconnect('db','','');
if (!$connection) { exit("Connection Failed: " . $connection); }

$stmt = odbc_prepare($connection, "INSERT INTO TimeSheet (?)");
$rs = odbc_execute($stmt, array($JobDescription));
于 2012-12-29T00:20:36.017 に答える