0

我有一个 mysql_query ,我需要在最后一个项目后面去掉最后一个逗号。

我怎样才能做到这一点?

这是代码片段:

mysql_query('INSERT INTO `items` (itemName, itemDescription  ) VALUES ("' . $form_input0 . '","' . $form_input1 . '",);');

给出“form_input”的部分是我关心的

"' . $form_input1 . '",

那个尾随的逗号是我需要删除的......

有些人建议我编辑问题并包含我正在使用的所有代码。也许它会有所帮助...

<?php

$host = '%id=server%';
$user = '%id=username%';
$password = '%id=password%';

$link = mysql_connect($host, $user, $password);

$selected = mysql_select_db('%id=database%', $link);

if(!isset($_POST['text-input']))

?>



    <form method="post">
        %slice%
        <input type="submit" value="Submit" />
    </form>
    %[if !edit]%



<?php
%[repeat items]%
$form_input%id=repeatIndex% =  $_POST['element-%id=repeatIndex%'] ;

%[endrepeat]%

mysql_query('INSERT INTO `%id=table%` (%[repeat items]%  %[endif]%%html="Edit Me"%%[if !edit]% %[endrepeat]% ) VALUES (%[repeat items]%"' . $form_input%id=repeatIndex% . '",%[endrepeat]%);');

?>
%[endif]%
4

2 回答 2

2

正如hookman在评论中正确提到的那样,mysql 扩展已被贬值,不应使用。

编辑现在您的代码已被编辑。正如您提到的,我不知道 API,但我知道一种可能的解决方案。

  • 将您的查询分配给一个变量。
  • 替换查询的最后一部分,以便,删除。

尝试:

...
%[endrepeat]%

$query = 'INSERT INTO `%id=table%` (%[repeat items]%  %[endif]%%html="Edit Me"%%[if !edit]% %[endrepeat]% ) VALUES (%[repeat items]%"' . $form_input%id=repeatIndex% . '",%[endrepeat]%);';
$query = preg_replace('/,\);$/',');',$query);
mysql_query($query);

....

preg_replace简单地编辑您的查询,以便它,);末尾的任何字符串都将替换为);. 您可以将其与其他查询一起使用,只需弄清楚如何使用 RegEx 转换它们。

我了解您的标记语言(无论您使用的是什么)有一些限制,可能会阻止您使用它的标准功能来执行此操作 - 在这种情况下,“手动”(使用正则表达式或以其他方式替换)编辑字符串是您唯一的选择(即或以某种方式解析它)。

或者,这可能有效:

...

%[repeat items]%
$values = array(
    mysql_real_escape_string($form_input%id=repeatIndex%),
    mysql_real_escape_string($form_input%id=repeatIndex%)
);
%[endrepeat]%
$query = 'INSERT INTO `%id=table%` (%[repeat items]%  %[endif]%%html="Edit Me"%%[if !edit]% %[endrepeat]% ) VALUES (' . "'" . implode("','", $values) . "')";

...
于 2012-08-16T21:35:53.327 回答
-1
$sql = str_replace(',);', ');', $sql);

但我会这样做:

$values = array(
    $form_input0,
    $form_input1
);
$sql = sprintf(
    'INSERT INTO `items` (itemName, itemDescription  ) VALUES ("%s")',
    implode('", "', $values)
);
$result = mysql_query($sql);
于 2012-08-16T21:41:00.120 回答