Admissions & Registration
部門名 (つまり、 )を含む SQL Server テーブルがありWomen's Softball coach
、ページのリンクをクリックすると、その部門のすべての従業員がプルされますが、プルするWomen's Softball coach
と、次のようなエラーが発生します。
PHP 警告: mssql_query() [function.mssql-query]: >メッセージ: 1 行目: 's' 付近の構文が正しくありません。(重大度 15) >C:\Inetpub\wwwroot\DACC\directory\dept.php の 179 行目
PHP 警告: mssql_query() [function.mssql-query]: >message: 文字列 ') ORDER BY Lastname' の前に引用符が閉じられていません。>>>(重大度 15) C:\Inetpub\wwwroot\DACC\directory\dept.php の 179 行目
PHP 警告: mssql_query() [function.mssql-query]: >C:\Inetpub\wwwroot\DACC\directory\dept.php 行 179 でクエリが失敗しました
PHP 警告: mssql_query() [function.mssql-query]: メッセージ: 5 行目: 's' 付近の構文が正しくありません。(重大度 15) >C:\Inetpub\wwwroot\DACC\directory\dept.php の 195 行目
PHP 警告: mssql_query() [function.mssql-query]: >message: 文字列 'ORDER BY directory.LastName' の前の引用符が閉じられていません。(重大度 15) C:\Inetpub\wwwroot\DACC\directory\dept.php > 195 行目
これは特殊文字のエスケープに関する問題であることはわかっていますが、クエリでそれを行う方法はありますか、それともテーブルで行う必要がありますか?
上記のコードはこちら --->
$department = $_GET['dept'];
// This will evaluate to TRUE so the text will be printed.
if (isset($department)) {
// Send a select query to MSSQL
$query = mssql_query("SELECT * FROM directory WHERE department IN (SELECT id FROM departments WHERE name='$department') ORDER BY Lastname");
クエリの実行方法は次のとおりです。
function listDepts() {
$query = "SELECT DISTINCT name FROM departments ORDER BY name";
$result = mssql_query($query);
echo "<h3>Please select a department:</h3>\n";
echo "<ul>\n";
for ($i=0; $i<mssql_num_rows($result); $i++) {
$info = mssql_fetch_assoc($result);
echo "<li><a href=\"dept.php?dept=$info[name]\">$info[name]</a></li>\n";
}
echo "</ul>\n\n";
}
部門リストを生成するコードは次のとおりです。
function listDepts() {
$query = "SELECT DISTINCT name FROM departments ORDER BY name";
$result = mssql_query($query);
echo "<h3>Please select a department:</h3>\n";
echo "<ul>\n";
for ($i=0; $i<mssql_num_rows($result); $i++) {
$info = mssql_fetch_assoc($result);
echo "<li><a href=\"dept.php?dept=$info[name]\">$info[name]</a></li>\n";
}
echo "</ul>\n\n";
}