【问题标题】:Submit Multi-Dimensional Array to mySQL向 mySQL 提交多维数组
【发布时间】:2020-01-10 19:08:07
【问题描述】:

我有一个带有字段的 mySQL 表:

  • preview_url
  • 大网址

我有一个对象,我提交的结构如下:

var $urls = {largeImg:[],preview:[]}

$urls.largeImg 值必须插入到 'large_url' 和

$urls.preview_url 值必须插入到 'preview_url'

$urls.largeImg[0] 必须和 $urls.preview[0] 在同一个 mysql 表行中,

$urls.largeImg[1] 放入与 $urls.preview[1] 相同的行,以此类推。

我的 php:

$urls = $_POST['urls'];

function cache_urls($urls){
global $db;


foreach($urls as $url){
    $sql = "INSERT INTO cache ";
    $sql .= "(preview_url, large_url) ";
    $sql .= "VALUES (";
    $sql .= "'" . db_escape($db, $url['preview']) . "', ";
    $sql .= "'" . db_escape($db, $url['largeImg']) . "'";
    $sql .= ");";

    $result = mysqli_query($db, $sql);
}

然后我也尝试了这个:

foreach($urls as $url){
    foreach($url as $key => $value){
        $sql = "INSERT INTO cache ";
        $sql .= "(preview_url, large_url) ";
        $sql .= "VALUES (";
        if($key==="preview"){
            $sql .= "'" . db_escape($db, $value) . "', ";
        }
        if($key==="largeImg"){
            $sql .= "'" . db_escape($db, $value) . "'";
        }

        $sql .= ");";

        $result = mysqli_query($db, $sql);
    }       
}

所以我认为 SQL 位一定是错误的,但我真的在我的知识的尽头!非常感谢任何帮助。

【问题讨论】:

  • 你试过回显 $sql 吗?
  • 你的意思是$sql还是$result?
  • 你的 $sql 查询字符串
  • 我没有得到任何回报,我正在使用 ajax (jQuery) 提交这个。我试图返回 $sql 但我什么也没得到。
  • 好吧,试试这个 echo "";

标签: php mysql sql arrays multidimensional-array


【解决方案1】:

你应该这样做,

$sql = "INSERT INTO cache (preview_url, large_url) values";
foreach($urls["largeImg"] as $index => $large_url){
    $preview_url = $urls["preview"][$index];
    $sql .= "('" . db_escape($db,$preview_url) . "','" . db_escape($db,$large_url) . "'),";
}
$sql = rtrim($sql,",");

【讨论】:

  • 非常感谢您的回答。我收到此错误:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“cdn.pixabay.com/photo/2017/09/30/15/10/…”附近使用正确的语法
  • 错误消息中的 url 是数组 urls.preview (urls.preview[1]) 中的第二个值,如果有帮助?
  • @Melvin 你能用文本向你展示 sql 和错误,而不是这里的图像。
  • 这是我返回的错误信息,包括图片网址。
  • sql的值是多少
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-26
  • 2012-07-29
  • 2011-01-26
相关资源
最近更新 更多