在php中连接时保留字符串中的空格

时间:2014-06-24 17:34:00

标签: php mysql

在php中连接字符串时,我在节省空间方面遇到了麻烦。它应该用作sql查询,因此空格很重要。

$sql_query = 'SELECT * FROM';
$sql_query .= 'table_id';
$sql_query .= 'WHERE user_id = 5';

我最终得到了

SELECT * FROMtable_idWHERE user_id = 5

请注意我将此作为示例而不是真正的查询,我只是想找到一种在连接时控制空格的一般方法。感谢

4 个答案:

答案 0 :(得分:0)

$sql_query = 'SELECT * FROM ';
$sql_query .= 'table_id ';
$sql_query .= 'WHERE user_id = 5';

当你连接一个字符串时,它会被写成完全。这意味着,PHP NOT 为您添加空间 - 您必须自己动手。

答案 1 :(得分:0)

你必须在字符串的结尾或开头设置一个空格。例如:

$sql_query = 'SELECT * FROM ';
$sql_query .= ' table_id ';
$sql_query .= ' WHERE user_id = 5 ';

答案 2 :(得分:0)

您可以将空格字符包含在字符串中。

$sql_query = 'SELECT * FROM';
$sql_query .= ' table_id'; /* space is prefixed here */
$sql_query .= ' WHERE user_id = 5'; /* and here */

因此,在连接时它们会被保留。

最终的sql_query如下:

SELECT * FROM table_id WHERE user_id = 5

答案 3 :(得分:0)

一旦有可能,如果你想自动化,就是在SQL片段数组上使用带有空格的implode作为$glue参数。例如:

$sql_fragments = array(
    'SELECT * FROM',
    'table_id',
    'WHERE user_id = 5'
);
$sql_query = implode(' ', $sql_fragments);

这将比连接慢,但如果要动态构建查询,则可能很有用。

或者,请考虑使用HEREDOC (multi-line string)声明您的SQL。