-6

我放在php中的sql

$sql = 'select * from table_1 where Right(col_1, LOCATE('.',col_1))';

但是,那 '。' $sql 会变成

select * from table_1 where Right(col_1, LOCATE(,col_1)) 

因为'.'

如何呈现“。” , 当我把它放在 php

4

7 回答 7

3

这应该像...

$sql = "select * from table_1 where (col_1, LOCATE('.', col_1))";

在您的情况下,您是concatenating两个字符串-

  1. select * from table_1 where (col_1, LOCATE(
  2. ,col_1))
于 2013-09-26T08:17:08.817 回答
3

在字符串周围使用双引号

$sql = "select * from table_1 where (col_1, LOCATE('.',col_1))";
于 2013-09-26T08:17:21.203 回答
2

您可以使用转义字符

$sql = 'select * from table_1 where (col_1, LOCATE(\'.\',col_1))';

或者您可以对 php 使用双引号

$sql = "select * from table_1 where (col_1, LOCATE('.',col_1))";
于 2013-09-26T08:17:50.637 回答
2

简单的:

$sql = "select * from table_1 where (col_1, LOCATE('.',col_1))";

使用双引号:)

于 2013-09-26T08:18:21.857 回答
0

为您的陈述使用双引号或转义单引号。

$sql = "select * from table_1 where (col_1, LOCATE('.',col_1))";

或者

$sql = 'select * from table_1 where (col_1, LOCATE(\'.\',col_1))';
于 2013-09-26T08:18:08.420 回答
0

这是另一种方法:(连接)

$sql = 'select * from table_1 where (col_1, LOCATE('.'.,col_1))';
于 2013-09-26T08:20:51.173 回答
0

试试这个

$sql = sprintf("select * from table_1 where (col_1, LOCATE('%s',col_1))",
                mysql_real_escape_string('.'));
于 2013-09-26T08:29:31.770 回答