对不起英语,不是我的母语。

因此,我试图在MySQL数据库中的XML标签之间保存每个元素。看起来不错,但我需要在每个元素上添加“”。看:

XML(如果有帮助的话)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<layout>
    <encabezado>
        <fecha_reporte> 2017-01-31</fecha_reporte>
        <fecha_esperada>2017-02-28 </fecha_esperada>
    </encabezado>

    <detalle>
        <matricula>20152999 </matricula>
        <nombre>Ivan </nombre>
        <creditos_costo>1100 </creditos_costo>
        <creditos_cursar>20 </creditos_cursar>
        <creditos_monto> 22000</creditos_monto>
    </detalle>

    <piedepagina>
        <total_estudiantes> 1</total_estudiantes>
        <total_creditos>20 </total_creditos>
        <monto_totalcred>22000 </monto_totalcred>
    </piedepagina>
</layout>


PHP:

<?php

require ('conexion.php');

$doc = new DOMDocument();
$doc->load('Layout.xml');
$estudiante= $doc->saveXML();

$escapando = mysql_real_escape_string($estudiante);
$query = "INSERT INTO nomina (fecha_reporte, fecha_esperada, matricula,
nombre, creditos_costo, creditos_cursar, creditos_monto,
total_estudiante, total_creditos, monto_totalcred) VALUES ('$escapando')";

echo $query;

?>


echo $query;给我这行:INSERT INTO nomina (fecha_reporte, fecha_esperada, matricula, nombre, creditos_costo, creditos_cursar, creditos_monto, total_estudiante, total_creditos, monto_totalcred) VALUES ('\n\n \n 2017-01-31\n 2017-02-28 \n \n \n \n 20152999 \n Ivan \n 1100 \n 20 \n 22000\n \n \n \n 1\n 20 \n 22000 \n \n\n')如果我删除了mysql_real_escape_string,则回显将在没有\n的情况下显示,因此我认为我应该删除它。

如何为每个元素添加“”?例如,像这样:
INSERT INTO nomina (fecha_reporte, fecha_esperada, matricula, nombre, creditos_costo, creditos_cursar, creditos_monto, total_estudiante, total_creditos, monto_totalcred) VALUES ('2017-01-31', '2017-02-28', '20152999' 'Ivan', '1100', '20', '22000', '1', '20', '22000')

最佳答案

我想如果你做这样的事情会起作用

INSERT INTO nomina (fecha_reporte, fecha_esperada, matricula, nombre, creditos_costo, creditos_cursar, creditos_monto, total_estudiante, total_creditos, monto_totalcred) VALUES ('"2017-01-31"', '"2017-02-28"', '"20152999"' '"Ivan"', '"1100"', '"20"', '"22000"', '"1"',   '"20"', '"22000"')


但是,如果将查询存储在双引号中,例如

$sql = "INSERT INTO bla VALUES (blabla)";


然后查询应为:

INSERT INTO nomina (fecha_reporte, fecha_esperada, matricula, nombre, creditos_costo, creditos_cursar, creditos_monto, total_estudiante, total_creditos, monto_totalcred) VALUES ('\"2017-01-31\"', '\"2017-02-28\"', '\"20152999\"' '\"Ivan\"', '\"1100\"', '\"20\"', '\"22000\"', '\"1\"',   '\"20\"', '\"22000\"')


转义双引号应该起作用。

关于php - 如何在DOMDocument XML的每个元素上添加引号以保存在MySQL数据库中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48566280/

10-09 05:44