php - 撇号导致已通过 mysqli_real_escape_string & trim 运行的表项的行重复出现错误

标签 php mysql mysqli apostrophe duplication

我已经成功地复制了连接表。耶!

现在,经过多次测试,我发现单个撇号(转义项)不被接受。最初在表单中创建新表行时,一切都通过以下方式运行:

$unit_id = mysqli_real_escape_string($dbc, trim($_POST['ajax_unit_id']));

现在,当我复制这些行来创建新记录时,我似乎不知道在哪里/如何再次 escape_string 以便再次允许使用单个撇号,例如名为 Don's Supah-Dupah 的标题应用程序

重复 php:

  $sql1 = "CREATE TEMPORARY TABLE   tmp
            SELECT          *
            FROM                ".ID_TABLE."
            WHERE           `unit_id` = " . $id . "";
  $result = mysqli_query($dbc,$sql1) or die(mysqli_error($dbc));

  $sql2 = "ALTER TABLE      tmp 
            DROP COLUMN     `unit_id`";
  $result = mysqli_query($dbc,$sql2) or die(mysqli_error($dbc));


  $sql3 = "UPDATE           tmp 
            SET                 `title` = '" . $titleStamp . "'";

  # ************************************************************ #
  # ****** This is where I believe the issue is occurring ****** #
  # ************************************************************ #


  $result = mysqli_query($dbc,$sql3) or die(mysqli_error($dbc));    
  $sql4 = "INSERT INTO      ".ID_TABLE." 
            SELECT          0,tmp.* 
            FROM                tmp";
  $result = mysqli_query($dbc,$sql4) or die(mysqli_error($dbc));    

  $unit_id1 = $dbc->insert_id;  //mysqli_insert_id($dbc);   // Store new unit_id as var

  $sql5 = "DROP TABLE       tmp;";
  $result = mysqli_query($dbc,$sql5) or die(mysqli_error($dbc));

最佳答案

再次梳理编码后,我发现这个错误实际上与重复无关……有点关系。

注意:我提供这个答案是为了帮助有人退后一步,从 5000 米的高度而不是 5 英寸的高度审视自己的问题。希望这可以帮助人们把自己从兔子洞中拉出来,以获得更好的视角。

在复制之前,我设置了一个由初始 sql select 生成的变量 $title

$row = mysqli_fetch_array($rdata);
$title = $row['title'];

...然后连接标题日期时间戳

date_default_timezone_set(DEFAULT_TZ);              // Default timezone set as Australia/Melbourne
$timestamp  = date('Y/m/d h:i:s:a');
$titleStamp = $title." COPY ".$timestamp;

这个$title变量是问题发生的地方。在将内容插入回新行之前,必须对新字符串进行转义。

$title      = mysqli_real_escape_string($dbc, trim($row['title']));

瞧!

关于php - 撇号导致已通过 mysqli_real_escape_string & trim 运行的表项的行重复出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27162346/

相关文章:

mysql - 从另一个查询的结果中查询第二个 mysql 表

php - 使用带绑定(bind)的 PHP 准备语句显示来自 mySQL 的行

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - mysqli select 查询不能正常工作

php - 提交表单时, Bootstrap 模式打开,但单击确定按钮时,它不起作用

php - 如何为默认的 opencart 联系我们表单创建副本,其中包含其他字段

即使没有匹配项,Mysql REGEXP 也会返回 true。

php - 官方 XBOX Live API?

php - 使用php和sql处理日期和时间信息

php - 如何从 MYSQL 显示用户的电子邮件地址?