VS2012 にブレークポイントを設定して実行を追跡すると、php ファイルへのリクエストが正しい戻り文字列を取得できなかったことがわかりましたが、次のエラー メッセージが表示されました:
無効なクエリ:
SQL 構文チェックにエラーがあります。 1 行目の '' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを参照してください。
クエリ全体:
select id,name fromindex_activities where top=0
この情報は、次のステートメント行の後ろにある私の
$result = mysql_query($query);
$top = $_REQUEST['top'];を使用して php ファイル内のパラメーターを取得します
データベース接続は正しいですか?
接続が正しい場合は、正しくない場合は、mysql に接続できませんを返し、次のリクエストは実行されず、MySQL リクエストのエラー メッセージは表示されません。
void CDllValidateDlg::ValidateAPerson(char* Name, char* Code){ CString post_data; post_data.Format("userid='%s'&name='%s'",Code,Name); //请求的附加参数 CString result; //返回的结果 CString post_page = "test_id_validater/validateid.php"; //请求的php PostHttpPage(result,post_page,post_data); AfxMessageBox(result);}
void CDllValidateDlg::getActs(HTREEITEM root){ CString post_data="top=0";// char top[10];// itoa(ActivitiesTree.GetItemData(root),top,10);// post_data.Format("top=%s",top); CString result; CString post_page = "test_id_validater/GetActivities.php";// AfxMessageBox("post_page:"+post_page+", "+"post_data:"+post_data); PostHttpPage(result, post_page, post_data); AfxMessageBox(result); …… ……
<?phprequire "use_daoru.php";$top = $_REQUEST['top'];$query = "select id,name from index_activities where top=0";$result = mysql_query($query);//if(!$result){//$message = 'Invalid query: '.mysql_error()."\n";//$message.= 'Whole query: '.$query;//die($message);//}$num = mysql_num_rows($result);for($i=0;$i<$num;$i++){ $row = mysql_fetch_row($result); echo($row[0].":".$row[1].",");}?>
<?phprequire "use_daoru.php";$top = $_REQUEST['top'];$query = "select id,name from index_activities where top=$top";$result = mysql_query($query);//if(!$result){//$message = 'Invalid query: '.mysql_error()."\n";//$message.= 'Whole query: '.$query;//die($message);//}$num = mysql_num_rows($result);for($i=0;$i<$num;$i++){ $row = mysql_fetch_row($result); echo($row[0].":".$row[1].",");}?>
SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを確認して、1 行目の '' 付近に使用する正しい構文を確認してください。
クエリ全体:
select index_activities の id,name (top=0)
この情報は明らかにデータベース レポートが間違っています。
$query = "select id,name fromindex_activities where top=0"; の場合は問題ありません
と $query = "select id,name fromindex_activities where top=$top"; の場合は、$top には何もありません。値または数値ではありません
$top = $_REQUEST['top']; $top = intval($_REQUEST['top']); に変更してください