I am trying to add dynamic array values from two arrays into mysql table as columns, several rows at a time. I have created a loop for that.
When I run it it produces an error, stating that I have an error in MYSQL syntax. When I try to run the query statement that is produced directly in phpMyAdmin it runs fine. So the syntax shouldn't be an issue. Thanks for any help.

我试图将两个数组中的动态数组值作为列添加到mysql表中,每次添加几行。我为此创建了一个循环。当我运行它时,它会产生一个错误,说明我在MYSQL语法中有一个错误。当我尝试运行直接在phpMyAdmin中生成的查询语句时,它运行良好。所以语法不应该是问题。感谢任何帮助。

function addSystemDataTanks ($db, $tankNamesArray, $tankVolumesArray)
{

  global $tankNamesArray;
  global $tankVolumesArray;
  global $noOfTanks;

  $statement = "replace into tanks (TANK_NAME, TANK_VOLUME) ";
  $statement .= "values ";

  for ($i = 0; $i < $noOfTanks; $i++) {

  $statement.= "('".$tankNamesArray[$i]."', '".$tankVolumesArray[$i]."'), ";
  }
  $statement.= rtrim($statement, ',');

  $result = mysqli_query($db, $statement);


  if ($result)
  {
    return true;
  }else{
    $errno = mysqli_errno($db);
    echo "{h4}MySQL Error No: ".mysqli_errno($db)."</h4>";
      echo "{h4}MySQL Error: ".mysqli_error($db)."</h4>";
      echo "{h4}SQL: ".$statement."</h4>";
      echo "{h4}MySQL Affected Rows: ".mysqli_affected_rows($db)."</h4>";
  }
  return 'NotAdded';
}

1 个解决方案

#1


0

I see two problems so far:

到目前为止,我看到了两个问题:

  • First: where are you assigning a value to $noOfTanks ? your for loop depends on that value, however, i don't see it being assigned which means it is currently resulting in NULL, thus your loop not iterating.

    首先:你在哪里为$ nooftank赋值?你的for循环依赖于那个值,但是,我没有看到它被赋值,这意味着它当前导致NULL,因此你的循环没有迭代。

  • Second: This line $statement .= rtrim($statement, ','); is concatenating to the original $statement variable thus ending up with this:

    第二:这行$statement .= rtrim($statement, ',');连接到原始的$statement变量,从而得到以下结果:

    'REPLACE INTO tanks (TANK_NAME, TANK_VOLUME) values REPLACE INTO tanks (TANK_NAME, TANK_VOLUME) values '
    

    I'm assuming you want to re-assign after your trim, in that case do this:

    我假设你想要重新分配后,你的修剪,在这种情况下,这样做:

    $statement = rtrim($statement, ',');
    

更多相关文章

  1. PHP 5.0 到 7.1 常用语法糖(个人整理)
  2. 解析错误:语法错误,第12行/home/public_html/gigs.html中的意外T_L
  3. PHP解析错误:语法错误,意外的T_VARIABLE
  4. 可以在SELECT语句中嵌入描述语法吗?
  5. mysql语法之case when then与列转行
  6. MySQL数据库语法-多表查询练习一
  7. 语法错误:从[{id}]开始的表达式[{id}]第2列的令牌'{'无效键?
  8. Javascript语法中null与“”的误写导致长期困扰的问题终于解决了
  9. JavaScript学习笔记--语法

随机推荐

  1. 10.10笔记,android通知栏兼容性,matches t
  2. Android 运行 Linux 可执行程序
  3. Android学习资源网站
  4. android 系统关机,重启
  5. Gallery 画廊
  6. android bitmap 处理
  7. Android获取机器显示屏幕的分辨率
  8. android tools命名空间
  9. Android学习资料分享
  10. android 去除ScrollVIew拉到尽头时再拉的