gpt4 book ai didi

php - 具有动态分配名称的文本区域会抛出我的代码

转载 作者:行者123 更新时间:2023-11-29 08:44:52 24 4
gpt4 key购买 nike

我有许多文本区域,每个文本区域都有一个唯一的指定名称(例如 name="adcode$ID")。当我尝试将这些名称传递给下面的代码时,由于动态部分,它不起作用。

if (isset($_POST['editadapp'])) {  // Edit AD
$newadcode = mysql_real_escape_string($_POST['.adcode$ID.']);
$doedit = "UPDATE ads SET adcode = '".$newadcode."') WHERE ads_ID=$ID" or die(mysql_error());
$updatead = mysql_query($doedit) or die(mysql_error());
header("Location: " . $_SERVER['PHP_SELF']);

我该如何解决这个问题?

最佳答案

这件事有太多错误,令人恐惧。

首先,

$doedit = "UPDATE ads SET adcode = '".$newadcode."') WHERE ads_ID=$ID" or die(mysql_error());

该代码片段在很多层面上都是错误的。

  1. sql语法错误
  2. sql 采用用户输入的字符串进行格式化(请参阅查询参数化 here
  3. 此处不应使用 die(),您正在创建一个字符串

理想情况下,您应该具有如下代码:

$dbh =  new PDO('connectionstring to connect to your database');
$sql = 'update ads set adcode = ? where ads_id = ?';
$sth = $dbh->prepare($sql);
$sth->execute(array($_POST['adcode' . $ID], $ID));

其他主题:

Are Paramerterized queries necessary in pdo?

prepared queries with pdo

Preventing sql injection in php

关于php - 具有动态分配名称的文本区域会抛出我的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12756251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com