0

这行得通。

function get_distinct_size_for_bracelets() {
    $sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type='plastic' ORDER BY size";
}

这不起作用并停止 php 死而没有错误报告。

 function get_distinct_size_for_bracelets($myvalue) {
    $sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type=".$myvalue." ORDER BY size";
}

我尝试了许多配置,但没有任何效果。

4

6 回答 6

2
function get_distinct_size_for_bracelets($myvalue) {
    $sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type='".$myvalue."' ORDER BY size";
}

您仍然需要 SQL 查询中的单引号。

于 2009-08-05T15:42:06.887 回答
2

请记住引用传递的值:

function get_distinct_size_for_bracelets($myvalue) 
{ 
$sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type=".$myvalue." ORDER BY size";
}

应该:

function get_distinct_size_for_bracelets($myvalue) 
{ 
$sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type='".$myvalue."' ORDER BY size";
}

请注意添加的单引号type

于 2009-08-05T15:42:27.087 回答
2

你仍然需要单引号。所以

$sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type='".$myvalue."' ORDER BY size";
于 2009-08-05T15:42:41.237 回答
2

你没有逃避你的价值,你忘记了你的单引号,那是我的猜测。尝试:

function get_distinct_size_for_bracelets($myvalue) { 
    $query = sprintf("SELECT DISTINCT size FROM mytable WHERE id = 27 AND type='%s'  ORDER BY size",
        mysql_real_escape_string($myvalue));
}

这使您可以将转义值传递到字符串中,而不是使用连接。

于 2009-08-05T15:43:26.103 回答
0

尝试

function get_distinct_size_for_bracelets($myvalue) {
    $sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type='".$myvalue."' ORDER BY size";
}
于 2009-08-05T15:43:13.920 回答
0

MySQL 也有不同的数据类型。字符串也需要用引号引起来:

$sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type='".$myvalue."' ORDER BY size";

或者更好地使用该mysql_real_escape_string功能

$sql = "SELECT DISTINCT size FROM mytable WHERE id = 27 AND type='".mysql_real_escape_string($myvalue)."' ORDER BY size";
于 2009-08-05T15:44:24.667 回答