2011-05-08 108 views
1

我遇到了PHP代码的麻烦。当我用一个PHP变量执行SQL查询时,问题就出现了。结果不显示任何内容,并且数据库中的字段不为空。试图用一个静态ID(不是变量)和查询工作正常。在php中为空的查询结果

你知道我在哪里做错了吗?

查询代码:

$consultaVideoSeleccionado1 = mysql_query("SELECT * FROM videos WHERE idvideo = `'.$videoSeleccionado.'`;", $conexion); 
+0

你使用反引号(')为什么?如果您的$ videoSeleccionado值是一个字符串,请使用单引号,而不是反引号! – 2011-05-08 15:16:04

+0

学习处理由MySQL返回的错误,以便您可以看到为什么它们在您的查询不起作用时抱怨您的查询。学习如何处理MySQL错误现在将有助于为您节省大量时间。 – 2011-05-08 15:18:49

+0

反引号是因为我用de phpmyadmin试过并生成了em。 – JMasia 2011-05-08 15:33:15

回答

1

试试这个:

$consultaVideoSeleccionado1 = mysql_query("SELECT * FROM videos WHERE idvideo = `'.$videoSeleccionado.'`;", $conexion) or die(mysql_error()); 

这会给你一个错误消息。

问题是你同时使用'和'作为转义字符。

$consultaVideoSeleccionado1 = mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';", $conexion); 

应该工作。

当您回应查询时,通常事情会更加清晰,以便您可以看到最终结果。

+0

无论如何我得到一个空的结果。我无法相信的事情是整个查询的回声返回它必须返回的结果,但我仍然得到空的结果......你知道它为什么会发生吗?非常感谢你。 – JMasia 2011-05-08 15:35:36

+0

你试过添加'或死(mysql_error());'部分? – Ikke 2011-05-09 06:22:37

1

你在你的查询中使用双引号,所以没有必要点.操作 $consultaVideoSeleccionado1 = mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado'", $conexion);

1

您正在连接串错了!您正在使用'单引号,但您应该使用double/none。

尝试此查询:

mysql_query("SELECT * FROM `videos` WHERE `idvideo` = '$videoSeleccionado';", $conexion) 

或者

mysql_query("SELECT * FROM `videos` WHERE `idvideo` = '{$videoSeleccionado}';", $conexion) 

或者

$q = "SELECT * FROM `videos` WHERE `idvideo` = '%s';"; 
mysql_query(sprintf($q, $videoSeleccionado), $conexion) 

编辑:

如果它还是不能正常工作可能在查询中出现问题,请尝试检查它是使用mysql_error()(1)还是尝试转储查询(2)。

实施例(1):

mysql_query("SELECT * FROM `videos` WHERE `idvideo` = '".$videoSeleccionado."';", $conexion) or die(mysql_error()); 

实施例(2):

$ Q = “SELECT * FROM videos WHERE idvideo = '$ videoSeleccionado';”; var_dump($ q); mysql_query($ q,$ conexion)

+0

反正我得到一个空的结果。我无法相信的事情是整个查询的回声返回它必须返回的结果,但我仍然得到空的结果......你知道它为什么会发生吗?非常感谢你。 – JMasia 2011-05-08 15:54:45

+0

我编辑了我的答案,也许这会有所帮助。 @ user743979 – Robik 2011-05-08 16:08:11