【发布时间】:2023-03-10 13:40:01
【问题描述】:
我需要使用 PHP 将包含我的用户数据的 JSON 文件迁移到 MySQL 中的一个表中,我已经建立了一个连接,我创建了一个表的数据库,并将 JSON 解码为一个数组。我不能做的是将数组数据插入 MySQL 用户表中。
我的 JSON 如下所示:
{
"nombre":"asudhau",
"apellido":"uhsaudhau",
"pass":"$2y$10$KAg3wt7bBjphgdCNJf4VXe.an8lOnlOvWVdVsh2Qsws0dbhWiDwkO",
"mail":"usaudha@hotmail.com",
"sexo":"F",
"id":34,
"nacimiento":"2016-10-06"
}
{
"nombre":"abudasd",
"apellido":"hasdua",
"pass":"$2y$10$c781KdL3ERgDCnP6MR28xuf\/dnKjuVajklc0uSj2FnBrZSB1H88Si",
"mail":"uhasiuda@hotmail.com",
"sexo":"F",
"id":35,
"nacimiento":"1990-02-03"
}
{
"nombre":"audihaiudh",
"apellido":"uiahsdiuahdi",
"pass":"$2y$10$Q7VjafKxt\/kuJS1BrslF0uSZPwHe7Hvp6olMxetgY31KcmMT9dIo2",
"mail":"hiuahdiuah@hotmail.com",
"sexo":"F",
"id":36,
"nacimiento":"1999-02-03"
}
我通过这种方式获得了每个用户的价值:
$conn = new PDO('mysql:host=localhost;dbname=dh_usuarios;charset=UTF8mb4', 'root', '');
$jsondata = file_get_contents('../usuarios.json');
$usuariosArray = explode(PHP_EOL, $jsondata);
foreach ($usuariosArray as $usuario) {
$jsondata = json_decode($usuario.PHP_EOL, true);
$jsonarray[] = array($jsondata);
}
foreach ($jsonarray as $row) {
$nombre = $row[0]['nombre'];
$apellido = $row[0]['apellido'];
$pass = $row[0]['pass'];
$mail = $row[0]['mail'];
$sexo = $row[0]['sexo'];
$id = $row[0]['id'];
$nacimiento = $row[0]['nacimiento'];
}
现在我想将此用户数据插入到我已经在 MySQL 中创建的表中,但我不知道该怎么做。
我试过了,但它只是不插入数据。
$stmt = $conn->prepare('
INSERT INTO dh_usuarios(nombre, apellido, pass, mail, sexo, id, nacimiento)
VALUES(:nombre, :apellido, :pass, :mail, :sexo, :id, :nacimiento);
');
$stmt->execute([
':nombre' => $nombre,
':apellido' => $apellido,
':pass' => $pass,
':mail' => $mail,
':sexo' => $sexo,
':id' => $id,
':nacimiento' => $nacimiento,
]
);
帮帮我我该怎么办? (对不起我的英语不好,我来自阿根廷)
【问题讨论】:
-
您是否检查了数据库中的错误?
-
我似乎不是数据库的错误,我想我在某处犯了错误,但我无法弄清楚....
-
试试
var_dump($jsondata)看看你那里有没有东西。 -
对,有数组
-
好的。那就试试
echo $jsonarray[0]['nombre']...如果没问题,再检查是否有PDO错误。在“执行”之后添加:if (!$stmt) { print_r($conn->errorInfo()); }else{ echo "stmt is ok."; }