Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP SQLite::转义双引号_Php_Sqlite - Fatal编程技术网

PHP SQLite::转义双引号

PHP SQLite::转义双引号,php,sqlite,Php,Sqlite,我试图在PHP环境中将用户给定的字符串插入到sqlite数据库中 由于不知道有多少字符串(每个字符串在数据库行中被划分),因此使用预分页语句并不理想,除非有一种方法可以预分页动态数量的行 因此,在构建查询字符串时,我使用一种严格的方法在单个位置使用PDO或静态转义函数转义每个插入值 示例: $value='\''。SQLite3::escapeString($value)。'\''; $value=$pdo->quote($value); 不幸的是,双引号(“)没有转义,因为它们意味着一些特殊

我试图在PHP环境中将用户给定的字符串插入到sqlite数据库中

由于不知道有多少字符串(每个字符串在数据库行中被划分),因此使用预分页语句并不理想,除非有一种方法可以预分页动态数量的行

因此,在构建查询字符串时,我使用一种严格的方法在单个位置使用PDO或静态转义函数转义每个插入值

示例:

$value='\''。SQLite3::escapeString($value)。'\'';
$value=$pdo->quote($value);
不幸的是,双引号(
)没有转义,因为它们意味着一些特殊的东西。尽管我认为字符串不能包含这些特殊字符,但在两个版本中都没有转义

我知道可以通过加倍撤销报价来避免这种情况,但出于安全考虑,如果可能的话,我不想做繁重的工作

那么,有没有一种好方法可以在PHP中正确地转义字符串呢


编辑: 根据要求举例说明

我有一个表/结构小部件,它代表不同的文本/行。沿着文本还有一些其他属性,基本上是绑定到该字符串的设置/元数据

保存时,我将整个表推送到服务器,所有内容都存储在一个指定的数据库表中

所以在代码中,我基本上有一个关联数组,它看起来像:

[
0 => [
'text'=>'一些包含各种字符\''的“字符串”,
“wheight”=>5
\\以及其他一些属性
], 
1 => [
'text'=>'其他一些@random text',
“wheight”=>3
\\以及其他一些属性
], 
]

表的大小是动态的,所以像
INSERT这样的预先准备好的语句插入表值(?,?)
不行,因为一行只能容纳3个变量。除非有一种方法可以允许动态的值量。

您可能应该在这里研究使用准备好的语句。是的,知道这一点,动态行计数如何?有什么解决方法吗?请给我们一些适当的例子(示例数据以及您希望如何将这些数据存储在表中)不清楚您的意思以及为什么“使用预先准备好的语句并不理想”为此,我添加了一个更详细的解释。如果每个子数组都应该是数据库中自己的记录/行,那么这正是准备语句的目的。准备语句一次并多次调用它,但使用不同的值(可能在foreach循环中).如果你想让事情变得更简单,你也可以使用SQLite的PDO,你会有很多指南来解释如何做到这一点。