为了账号安全,请及时绑定邮箱和手机立即绑定

jquery onclick html 元素的 id 和值

jquery onclick html 元素的 id 和值

PHP
ITMISS 2023-10-15 15:40:40
嗯,我正在运行一个非常大的 SQL 命令。我收到错误 1064(语法错误或访问冲突)。有没有什么方法可以得到准备好的语句,看看错误可能出在哪里?我只看到 50 个字符,老实说我不知道问题是什么。这就是我创建和准备声明的方式:function insertIntoMultiple($tablename, $columns, $data, $datetime_column_name = 'created_at') {    global $db;        $data = json_decode(base64_decode($data), true);    $exp = explode(", ", $columns);    $params = array_diff($exp, ["created_at"]);    $real_columns = join(",", $params);    // $join = join(',', json_decode($columns, true));    $query = "INSERT INTO $tablename ($real_columns, $datetime_column_name) ";    $i = 0;    $c = count($data);    foreach ($data as $param) {        $marks = getMarks($params);        // $query = storeQuery("INSERT INTO $tablename ($join, $datetime_column_name) VALUES ($marks, NOW())");        $query .= "VALUES ($marks, NOW())";        $query .= $i < $c - 1 ? "," : ";";        $query .= "\n";        ++$i;    }    $stmt = $db->prepare($query);    $pars = getParams($data, $params);    $r = $stmt->execute($pars);    return $r;}其中有 24 列和 1000 个值要插入。因此查询中有 24,000 个参数。这些是我用来创建查询字符串的方法:function getMarks($params, $for_update = false) {    $arr = array();    foreach ($params as $param) {        if($param == "created_at") continue;        $arr[] = $for_update ? '$param = ?' : '?';    }    return join(',', $arr);}function getParams($params, $columns) {    $arr = array();    foreach ($params as $param) {        foreach ($columns as $column) {            if($column == "created_at") continue;            $arr[] = $param[$column];        }    }    return $arr;}由于某种原因,这不起作用,这是我得到的独特输出:致命错误:未捕获的 PDOException:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在 'VALUES ('1','xxx','xxxx7010','','https://xxxx/xxx/5...' 附近使用的正确语法,网址为/root/project/php/api.php:126 中的第 2 行正如你所看到的,我无法让它使用这个独特的信息。这给了我相同的查询(带有标记),因为我认为这需要在给我一个异常的方法之后调用->execute(),所以我看不到任何东西。
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

最好使用数据属性在按钮单击时进行设置和检索id。下面,我向按钮添加了一个数据属性,并使用 jQuery 的data()来获得id点击。

<input class="price" name="price" id="price_<?= $value['i_id'] ?>" value="<?= &cost ?>" />                         

<input type="hidden" id="<?= $value['i_id'] ?>_suffix" value="<?= $value['suffix'] ?>" /> 

<button type="button" class="sp-save btn btn-xs btn-primary btn-bell m-l-xs" id="save_<?= $value['i_id'] ?>" data-id="<?= $value['i_id'] ?>">SAVE</button>

jQuery:


id = $(this).data('id');       

price = $('#'+'price_'+id).val();         

s_id = $('#'+id+'_suffix').val();  


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信