Php mysql_num_行出现问题
这是我的密码:Php mysql_num_行出现问题,php,mysql,mysql-num-rows,Php,Mysql,Mysql Num Rows,这是我的密码: $sql1 = 'SELECT * FROM login WHERE age= "$age", town = "$town" and ID != "$id"'; $result1 = mysql_query($sql1); $numResults1 = mysql_num_rows($result1); 我的变量很好,里面有数据。错误是: 警告:mysql_num_rows():提供的参数不是…..中的有效mysql结果资源 numResults可能等于0,但仍不应导致此情况
$sql1 = 'SELECT * FROM login WHERE age= "$age", town = "$town" and ID != "$id"';
$result1 = mysql_query($sql1);
$numResults1 = mysql_num_rows($result1);
我的变量很好,里面有数据。错误是:
警告:mysql_num_rows():提供的参数不是…..中的有效mysql结果资源
numResults可能等于0,但仍不应导致此情况
会不会是那个在导致该问题的第一行中,问题是您的SQL查询不正确:
$sql1 = 'SELECT * FROM login WHERE age= "$age", town = "$town" and ID != "$id"';
注意WHERE
子句中age=“$age”
之后的,
不正确。应该是这样的:
$sql1 = "SELECT * FROM login WHERE age= '$age' AND town = '$town' and ID != '$id'";
问题是您的SQL查询不正确:
$sql1 = 'SELECT * FROM login WHERE age= "$age", town = "$town" and ID != "$id"';
注意WHERE
子句中age=“$age”
之后的,
不正确。应该是这样的:
$sql1 = "SELECT * FROM login WHERE age= '$age' AND town = '$town' and ID != '$id'";
你把单引号和双引号弄混了。将所有单引号设为双引号,反之亦然 尝试回显
$sql1
以了解我的意思
numResults可能等于0,但仍不应导致此情况
不。这意味着您的SQL有问题。您的单引号和双引号混淆了。将所有单引号设为双引号,反之亦然 尝试回显
$sql1
以了解我的意思
numResults可能等于0,但仍不应导致此情况
否。这表示您的SQL有问题。您的查询有语法错误。在尝试使用之前,请检查
$result1
;当mysql\u error()为FALSE时打印。你会被告知问题所在
此外,对SQL查询字符串使用单引号意味着不会发生变量插值。。。因此,您不太可能返回行。您的查询有语法错误。在尝试使用之前,请检查$result1
;当mysql\u error()为FALSE时打印。你会被告知问题所在
此外,对SQL查询字符串使用单引号意味着不会发生变量插值。。。因此,您不太可能得到返回的行。=
和
都是有效的MySQL非相等运算符。我不喜欢您的SO用户名是广告。如果将第二行更改为$result1=MySQL\u query($sql1)或die(MySQL\u error()),则可以看到MySQL错误代码>=
和
都是有效的MySQL非相等运算符。我不喜欢您的SO用户名是广告。如果将第二行更改为$result1=MySQL\u query($sql1)或die(MySQL\u error()),则可以看到MySQL错误
为什么要使用单引号?事实上,引号对mysql并不重要-当包含在单引号字符串中时,php不会用值替换$var。我以为你必须这样做,但我发现你没有。问题不是他在mysql中使用双引号(请参阅);问题是单引号内的变量不是由PHP计算的。您以前的答案是正确的,现在您已经将其改为不正确的。错的是你说MySQL不接受双引号。现在你误用了引号,变量$age、$town和$id将不会由PHP计算。为什么要使用单引号?事实上,引号对mysql并不重要-当包含在单引号字符串中时,PHP不会用值替换$var。我想你必须,但我知道你没有,问题不在于他在MySQL中使用了双引号(参见);问题是单引号内的变量不是由PHP计算的。您以前的答案是正确的,现在您已经将其改为不正确的。错的是你说MySQL不接受双引号。现在你误用了引号,变量$age、$town和$id将不会被PHP计算<代码>$var=3;回音“$var”
将按字面意思响应$var
而不是3
@Backslap:你为什么这么说?(a) 是的,你知道;(b) 你的代码甚至没有检查。说真的,你是<代码>$var=3;回音“$var”
将按字面意思响应$var
而不是3
@Backslap:你为什么这么说?(a) 是的,你知道;(b) 你的代码甚至没有检查。