2011-06-25 14 views
1

アプリケーションをビルドして、Imが奇妙な問題を抱えていることがあります.SQLステートメントが動作することがあります。sqlの挿入ステートメントが動作しない場合がある

私は個人的にちょうど十分に速く、データベースへのSQL呼び出しを大量に受け入れるようにされていないかもしれない使用して、そのホスティングプロバイダイムを疑うが、私は他の誰がこれまでに同様の問題

+1

あなたは本当にこれに関する詳細を私たちに与える必要があります。たとえば、実行中のクエリ、テーブル構造、「うまくいかない」という定義(つまり、エラーが発生しているか、静かに失敗しているかなど)です。 –

+0

あなたは何を得ていますか? – Sudantha

+0

これは私が実行した、かなり標準的なクエリです。ほとんどの場合、mysql_query( "INSERT INTOツイートのバリュー( ''、 '$ id'、 '$ twtid'、 ''、 'twtsrc'、 '$ inreplyto_id '、' $ pubname '、' $ pbsname '、' $ pbprfpic ') ");" –

答えて

1
があった場合、私は少なくとも見て聞いてきます把握

これは、クエリステートメントに動的に追加する値になります。値をエスケープして、クエリを壊さないようにする必要があります。

PHPでは、mysql_escape_string()関数を使用できます。ここでのドキュメント:http://us3.php.net/mysql_escape_string

また、ブラウザからのクエリを実行している場合は、このような何かあれば、あなたは通常、エラーを見ることができます:あなたはMySQLの一般へのアクセスを持っていないと仮定すると、

$query = mysql_query("QUERY", $db_connection) or trigger_error(mysql_error()); 
+0

私はあなたが正しいかもしれないと思います、ここで私が取得できたエラーです:あなたはあなたのSQL構文に誤りがあります。あなたのMySQLサーババージョンに対応するマニュアルをチェックし、適切な構文を使用してください。あなたはどうしたのですか? '、' 23883319 '、' cabbie richards '、' therea 'on line 1 –

+0

が掲載されています!助けてくれてありがとう! –

0

をクエリログ共有ホストにしていると、データベースのmy.cnfファイルを変更できない場合は、の線に沿って機能をアップドラフトがあります。これは、あなたがすべてのクエリをログに記録することができます

function dbInsertQuery($query, $conn) { 
    $logFile = "/path/to/file.txt"; 
    $isProd = FALSE; 

    // run your security checks on the query here 

    $mysql_query($query, $db_connection) or trigger_error(mysql_error()); 

    if (!$isProd && is_writable($logFile)) { 
     if (!handle = fopen($logFile, 'a')) { 
     echo "cannot open dbInsertQuery's log file: " . $logFile; 
     exit; 
     } 

     $logLine = date(DATE_RFC822) . " - " . $query; 

     if (fwrite($handle, $logLine) === FALSE) { 
     echo "cannot write to dbInsertQuery's log file: " . $logFile; 
     exit; 
     } 

     fclose($handle); 
    } 

    } 

ログファイル。私は開発のためにトグルするために$isProd変数を設定し、値がTRUEに設定されている場合、ファイルにはログが記録されず、whoプロセスを完全にスキップします。それを調整する必要があるかもしれませんし、必要であれば挿入するだけではなく、すべてのクエリを実行することさえできます。

関連する問題