2011-12-05 6 views
-3

私はこのSQLコマンドを分割しなければなりません。さて、私はgazillion数の引用符で問題があります。誰か助けてもらえますか? (私は動的にファイル名の一部として現在のタイムスタンプを含む必要があるOUTFILEにファイル名を割り当てようとしています)。ありがとう。SQLコマンドを複数のPHPラインに分割

<?php 

    $sql_query = "SELECT @myCommand := concat("'SELECT UNIX_TIMESTAMP(TIMESTAMP(CURDATE() , HalfHourTime)), 0, 0, 0, 0 '"; 
    $sql_query =$sql_query . into OUTFILE 'C:/wamp/www/myApp/services/csv/filename-", 'DATE_FORMAT(now(),"%Y%m%d-%H%i%s")', '.csv' "' '; 
    $sql_query =$sql_query . FIELDS TERMINATED BY ',' '; 
    $sql_query =$sql_query . LINES TERMINATED BY '\n''; 
    $sql_query =$sql_query .FROM timeintervals_halfhours'; 
    $sql_query =$sql_query . ');"; 
    $sql_query =$sql_query . "PREPARE stmt FROM @myCommand; "; 
    $sql_query =$sql_query . "EXECUTE stmt;"; 

    define("DATABASE_SERVER", "localhost"); 
    define("DATABASE_USERNAME", "root"); 
    define("DATABASE_PASSWORD", ""); 
    define("DATABASE_NAME", "dataR"); 

    $con = mysqli_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); 
    $selected_db = mysql_select_db(DATABASE_NAME, $con);  

    $result = mysql_query($sql_query); 

    $temp = mysql_fetch_array($result); 
?> 
+6

**あなたも自分で引用符を修正しようとしましたか?あなたがそうしたように見えません。あなたは私たちの時間を無駄にしています。 –

答えて

0

代わりの$sql = $sql . "more"をやって、あなたはまた、あなたは何か間違ったことをやっているSQL、あなたの行に問題があるこの

$sql .= 'more'; 

のように、代わりに.=を使用して文字列を連結することができます見積もりで、あなたはそれで何をしたいですか?それを脱出する?この特定のクエリに対する

$sql_query = "SELECT @myCommand := concat("'SELECT UNIX_TIMESTAMP(TIMESTAMP(CURDATE() , HalfHourTime)), 0, 0, 0, 0 '"; 
             ^

、私はあなたがそれで

+0

フィードバックいただきありがとうございます。 – user983522

2

をものをエスケープする必要はありませんとあなたがこの種のを避けるために、PHP mysqli::prepareステートメントを使用して調査したいかもしれません、heredocであなたのSQLを構築推薦文字列操作の詳細は、http://www.php.net/manual/en/mysqli.prepare.phpを参照してください。

+0

私は確かに試しました。あなたの時間を無駄にして申し訳ありません。 – user983522

5

が何を分割しないで、空白は(特に8文字のリードで、そして4のインデント刻み)あなたの友達です

$sql = 'SELECT * 
     FROM `table` 
     WHERE `table`.`field` = :param'; 

と推奨として、プリペアドステートメントを使用します。 PDOに移行します。

関連する問題