【问题标题】:Removing unwanted quotes php删除不需要的引号 php
【发布时间】:2026-02-09 07:05:01
【问题描述】:

我的脚本中有两个字符串输入,它们迭代地编写了一个 while 循环:

<code>$odometerBrand=PREVIOUS ONC"ODOMETER BRAND"; </code>

<code>$odometerBrand=PREVIOUS ONC'ODOMETER BRAND"</code>

我尝试用我自己的引号将它们包装起来,但由于字符串值具有内部引号,它会在其中一个或另一个上中断。

<code>
 array_push($actualInventoryArray,array("'".$OdometerBrand)."'" ));
</code>

所以我知道上面的代码不起作用,因为当对数据库感兴趣时,第二个值看起来像:

' PREVIOUS ONC' ODOMETER BRAND" ';或者更糟的东西。

现在我将如何删除引号以将其插入数据库?

【问题讨论】:

  • $actualInventoryArray[] = array("'".str_replace('"', "'", $OdometerBrand))."'" );`
  • 你试过"\"escaping\""吗?另外:使用参数化语句 - 它们共同防止您的问题,同时保护您免受 sql 注入 - 从不通过连接将数据插入查询!
  • 是的,我实际上尝试了 php addlashes() 的内置函数,但似乎 php 根本无法将数据识别为字符串。因为字符串带有内部引号。所以整个事情:[这个字符串'Hello Again“]应该是一个字符串,但无论如何我都无法将整个数据作为字符串获取,它要么是前两个单词,要么是最后两个单词
  • 我不清楚你想要达到什么目的。如果你想为变量赋值,那么是的,转义应该有效。以及here-docnow-doc 语法形式,也使输入新行更容易。

标签: php laravel double-quotes single-quotes


【解决方案1】:
 <code>
       $pdo = new PDO("mysql:host=127.0.0.1;dbname=","root","");
    $database= $pdo->prepare("INSERT INTO * VALUES ()  ...NOW()")

    //  * = yourtablename( columns names, ""  , "" , "" );

    $database->execute( 
    array_push($actualInventoryArray,array("'".$OdometerBrand)."'" ));
  //you have to make a new pdo statement

 </code>

【讨论】: