Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在sql文件的csv转储中替换\N_Php_Mysql_Sql - Fatal编程技术网

Php 在sql文件的csv转储中替换\N

Php 在sql文件的csv转储中替换\N,php,mysql,sql,Php,Mysql,Sql,我使用以下命令以csv格式转储sql文件: $file_path=“/tmp/app_users.csv” 但是users表中的某些字段为null,csv输出中显示为\N。我希望将其替换为字符串“null”。我尝试使用str_replace,但它神秘地在每一行后面插入一个额外的空行。如果字符为空(在您的查询中),则不会转义任何字符,并且NULL作为NULL输出,而不是\N 因此,以下内容将为您提供所需的结果: $sql = "SELECT 'id','username','name','emai

我使用以下命令以csv格式转储sql文件: $file_path=“/tmp/app_users.csv”

但是users表中的某些字段为null,csv输出中显示为\N。我希望将其替换为字符串“null”。我尝试使用str_replace,但它神秘地在每一行后面插入一个额外的空行。

如果字符为空(在您的查询中),则不会转义任何字符,并且NULL作为NULL输出,而不是\N

因此,以下内容将为您提供所需的结果:

$sql = "SELECT 'id','username','name','email',
    'phone_number','city',
    'batch_code','course_type' UNION ALL
    SELECT id, username, name, email,
    phone_number, city, batch_code, course_type
    FROM users INTO OUTFILE '".$file_path."' ".
        "FIELDS TERMINATED BY ','
        ENCLOSED BY '\"'
        ESCAPED BY ''
        LINES TERMINATED BY '\r\n'";

这只是一种方法,如果需要转义其他字符,您可能不希望使用此方法。

如果按字符转义的字段为空(在查询中),则不会转义任何字符,并且NULL输出为NULL,而不是\N。@SonuJha抱歉,粘贴错误。更正了答案中的问题。对我有用。
$sql = "SELECT 'id','username','name','email',
    'phone_number','city',
    'batch_code','course_type' UNION ALL
    SELECT id, username, name, email,
    phone_number, city, batch_code, course_type
    FROM users INTO OUTFILE '".$file_path."' ".
        "FIELDS TERMINATED BY ','
        ENCLOSED BY '\"'
        ESCAPED BY ''
        LINES TERMINATED BY '\r\n'";