php - 如何将数组插入MYSQL数据库?

标签 php mysql

我有一个数组,我正在尝试将其插入到我的 MYSQL 数据库中。我不确定它是我的 MYSQL 数据库还是我的 php 代码,但是当我打开我的 php 文件时,它不会在我的表中插入任何内容。这是我到目前为止的代码。

    <?php
    $con = mysql_connect("localhost","***","***");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("ms122r_reports", $con); 

    // Filter out zeros
    $words = file('http://www.ndbc.noaa.gov/data/latest_obs/latest_obs.txt',              FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    $words = array_map('rtrim',$words);
    $string = implode(" ",$words);
    $array = explode(" ",$string);

    $filtered = (array_filter($array));

    $row4 = array_slice($filtered, 704, 22);

    $var1 = array_slice($row4, 0, 1);
    $var2 = array_slice($row4, 1, 1);
    $var3 = array_slice($row4, 2, 1);
    $var4 = array_slice($row4, 3, 1);
    $var5 = array_slice($row4, 4, 1);
    $var6 = array_slice($row4, 5, 1);
    $var7 = array_slice($row4, 6, 1);
    $var8 = array_slice($row4, 7, 1);
    $var9 = array_slice($row4, 8, 1);
    $var10 = array_slice($row4, 9, 1);
    $var11 = array_slice($row4, 10, 1);
    $var12 = array_slice($row4, 11, 1);
    $var13 = array_slice($row4, 12, 1);
    $var14 = array_slice($row4, 13, 1);
    $var15 = array_slice($row4, 14, 1);
    $var16 = array_slice($row4, 15, 1);
    $var17 = array_slice($row4, 16, 1);
    $var18 = array_slice($row4, 17, 1);
    $var19 = array_slice($row4, 18, 1);
    $var20 = array_slice($row4, 19, 1);
    $var21 = array_slice($row4, 20, 1);
    $var22 = array_slice($row4, 21, 1);

    // Insert into database
    mysql_query("INSERT INTO table1(#STN, LAT, LON, YYYY, MM, DD, hh, mm2, WDIR, WSPD,     GST, WVHT, DPD, APD, MWD, PRES, PTDY, ATMP, WTMP, DEWP, VIS, TIDE)
    VALUES ($var1, $var2, $var3, $var4, $var5, $var6, $var7, $var8, $var9, $var10,   $var11, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19, $var20, $var21,
    $var22)");

    mysql_close($con);
    ?>

抱歉,我是 PHP 和 MYSQL 新手。我的 MYSQL 数据库中的列名与 table1() 的 () 中显示的列名相同,并且它们的类型设置为“text”。非常感谢任何帮助,谢谢。

最佳答案

不要忘记引用你的变量 如 VALUES ('$var1', '$var2' ....)

顺便说一句,我建议你稍微清理一下你的代码。 创建 $var{1-22} 将是一场噩梦。 您可以使用 implode 函数而不是创建 22 个变量

我不知道,也许是这样?

echo 'VALUES (\'' . implode('\',\'', $row) . '\')';

另外,我不确定 Mysql 是否允许名称带有 # 的列。查看您的 #STDN 列并检查是否允许这样做。

考虑以下因素:

  • 请考虑切换到 PDOmysqli 。如果您使用PDO,这个问题将有一个非常简单的解决方案。

  • 如果您想坚持使用 mysql_* 函数,至少要使用 mysql_real_escape_string 清理要插入数据库中的所有数据。 .

关于php - 如何将数组插入MYSQL数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491661/

相关文章:

mysql - 运行cakephp的centos服务器无法访问远程mysql服务器,但可以通过cake外部的pdo连接进行访问

php - 如何选择 MYSQL 日期时间列到 HTML 输入日期时间

php - 从 mySQL 切换到 noSQL - 词典网站

Javascript多图像颜色变化

php - 在 7 天日历中显示当前周的 mysql 数据

mysql - 连接到 JBoss EWS 2.0 中的本地 MySQL 数据库

php - 需要替代 mysqli_fetch_all

php - 如何将 WordPress 帖子循环分成两列?

php - 热门标签

php - 从 mysql 数据库加载标记并在 Google map 上显示为标记