0

odbc 接続と php を使用して、アクセス データベースのテーブルからデータを抽出しようとしています。以下のコードを書きましたが、「Uncaught exception 'com_exception' with message ' Source: Microsoft OLE DB Provider for ODBC Drivers
Description: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'table1」というエラーが表示されます.col_date"

<?php $cn = new com("ADODB.Connection");
 $rs = new com("ADODB.Recordset");

$cn->open("dsn=odbcconnection");
?>
<form action = "thispage.php" method = "post">
Enter Date : <input type = "text" name = "datadate" />
<input type = "submit" name = "submit" value = "submit" /> 
</form>
<?php
$datadate = isset($_REQUEST['datadate']) ? $_REQUEST['datadate'] : null; ?>

<?php $sql = "select col_date, sum(qty1), sum(qty2) from table1
              where  table1.col_date = '".$datadate."'
              group by col_date
              order by col_date";

// Execute query
$rs = $cn->execute($sql);

$datadate を table1.col_date = #05/08/2012# のような静的な日付に置き換えると、日付の出力が正しく表示されるため、パラメーター行 table1.col_date = $datadate のみに問題があると思います

4

1 に答える 1

1

問題は、空の現在のページに投稿するクエリ文字列パラメーターを使用しているか、POST と混同していることです。以下を試してください

ページ自体に投稿する場合は、次の手順を実行します。

<form action = "<?php echo $PHP_SELF; ?>" method = "post"> 

次に、を次のように変更します。

$datadate = isset($_POST['datadate']) ? $_POST['datadate'] : null; ?>

最後に、前述のように変更を加えます

を交換する[table1.col_date][table1].[col_date]、ブラケットを完全に取り外して、次のことを試してください。

<?php $sql = "select col_date, qty1, qty2 from table1 where  [table].[col_date]= '".$datadate."' group by col_date order by col_date"; 
于 2012-08-29T08:49:32.437 に答える