Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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 双引号字符串中具有可变值的单引号_Php_String_Double Quotes_Quote - Fatal编程技术网

Php 双引号字符串中具有可变值的单引号

Php 双引号字符串中具有可变值的单引号,php,string,double-quotes,quote,Php,String,Double Quotes,Quote,我有一个字符串如下所示: "count( IF (my_id = 'mykey',value,100)) mykey" "count( IF (my_id = '$which_value',value,100)) mykey" "count( IF (my_id = '{$an_array[3]}',value,100)) mykey" 但是,紧跟在my_id之后的值“mykey”位于名为$which_value的变量中 我看不出如何将$which_值放在一起,使其包含一个引号。要在字符串

我有一个字符串如下所示:

"count( IF (my_id = 'mykey',value,100)) mykey"
"count( IF (my_id = '$which_value',value,100)) mykey"
"count( IF (my_id = '{$an_array[3]}',value,100)) mykey"
但是,紧跟在my_id之后的值“mykey”位于名为$which_value的变量中


我看不出如何将$which_值放在一起,使其包含一个引号。

要在字符串中包含一个变量,您可以这样做

"count( IF(my_id = '" . $which_value . "',value,100)) mykey"

很难弄清楚您到底在寻找什么,但这应该会为您指明正确的方向(我希望)

只需在字符串中添加变量:

"count( IF (my_id = '$which_value',value,100)) mykey"
但是,您应该正确地转义该值或使用准备好的语句:

$stmt = $db->prepare("SELECT count(IF (my_id = :my_value, value, 100)) mykey...");

$stmt->execute(array(
    ':my_value' => $which_value,
));
或者,使用普通的ol'
mysql\
函数:

$sql = sprintf("SELECT count(IF(my_id = '%s', value, 100)) mykey...", 
    mysql_real_escape_string($which_value)
);
mysql_query($sql);

您可以始终在双引号字符串中使用变量,如下所示

"count( IF (my_id = '{$mykey}',value,100)) {$mykey}"

将解析双引号内的变量。有一种简单方便的方法,只需使用如下变量:

"count( IF (my_id = 'mykey',value,100)) mykey"
"count( IF (my_id = '$which_value',value,100)) mykey"
"count( IF (my_id = '{$an_array[3]}',value,100)) mykey"
更复杂的表达式可以用花括号括起来,如下所示:

"count( IF (my_id = 'mykey',value,100)) mykey"
"count( IF (my_id = '$which_value',value,100)) mykey"
"count( IF (my_id = '{$an_array[3]}',value,100)) mykey"

您可能还想考虑释放变量字符串,这样它不会中断或打开以利用您正在创建的字符串。如果id是整数,则可以将变量类型转换为整数:

"count( IF (my_id = '" . (int)$which_value . ',value,100)) mykey"
或者使用sprintf函数将变量插入字符串:

sprintf("count( IF (my_id = '%d',value,100)) mykey", $which_value)

如果需要转义文本字符串,则需要查看特定于正在构造查询的数据库的转义函数

你的意思是像“
”count(如果(my_id=”“$which_value.”,value,100))mykey“
”这样的东西吗?希望他使用PDO来使用绑定解决方案:)