Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $sql变量导致mysql_fetch_array()期望参数1是资源_Php - Fatal编程技术网

Php $sql变量导致mysql_fetch_array()期望参数1是资源

Php $sql变量导致mysql_fetch_array()期望参数1是资源,php,Php,我在php中有一个搜索表单,当用户输入要搜索的名称时,表单调用以下php代码以给出结果。我的问题是,这段代码在执行时给了我“mysql\u fetch\u array()期望参数1是资源,布尔给定”。如果我将$sql更改为类似于用户的$sql=“SELECT`name`、`name`、`email`、`user\u id`之类的内容,那么它就可以正常工作了。你知道这可能是我的问题所在,以及如何继续 //more code $start=0; $per_page=10; $page=1; $

我在php中有一个搜索表单,当用户输入要搜索的名称时,表单调用以下php代码以给出结果。我的问题是,这段代码在执行时给了我“mysql\u fetch\u array()期望参数1是资源,布尔给定”。如果我将$sql更改为类似于用户的
$sql=“SELECT`name`、`name`、`email`、`user\u id`之类的内容,那么它就可以正常工作了。你知道这可能是我的问题所在,以及如何继续

//more code

$start=0;
$per_page=10;
$page=1;

 $sql = " SELECT `name`, `surname`, `email`, `user_id` FROM users WHERE (surname LIKE '$name%' AND name LIKE '$surname%') OR (surname LIKE '$surname%' AND name LIKE '$name%') LIMIT 100 ";

 $sql .= "LIMIT $start, $per_page";

 $result = mysql_query($sql);

  while($run = mysql_fetch_array($result)){
      $surname = $run['surname'];
  }

您正在生成一个无效的查询

$sql = "...LIKE '$name%') LIMIT 100 ";
$sql .= "LIMIT $start, $per_page";
…将生成2个
LIMIT
子句并导致语法错误。当您出现语法错误且未检查
mysql\u query
的返回值时,您将在问题中收到错误消息,因为您无法返回结果。如果您使用

$result = mysql_query($sql) or die(mysql_error());

…您将有一个错误提示作为错误消息。

您正在生成一个无效查询

$sql = "...LIKE '$name%') LIMIT 100 ";
$sql .= "LIMIT $start, $per_page";
…将生成2个
LIMIT
子句并导致语法错误。当您出现语法错误且未检查
mysql\u query
的返回值时,您将在问题中收到错误消息,因为您无法返回结果。如果您使用

$result = mysql_query($sql) or die(mysql_error());

…您将有一个错误提示作为错误消息。

看起来您的LIMIT语句重复了两次。第一行以
LIMIT 100
结尾,下一行添加
LIMIT$start$per_page
,这将导致如下结果:


LIMIT 100 LIMIT 0,10

您的LIMIT语句似乎重复了两次。第一行以
LIMIT 100
结尾,下一行追加
LIMIT$start$per\u page
,结果如下:


LIMIT 100 LIMIT 0,10

这是因为您的查询失败。为什么不放置一个或死(mysql\u error())来捕获错误

做这样的事

if($result === FALSE) {
    die(mysql_error()); // TODO: better error handling
}

while($run = mysql_fetch_array($result)){
    $surname = $run['surname'];
}

正如@Mike所指出的,您有一个语法错误,==>2倍限制

这是因为您的查询失败了。为什么不放一个或死(mysql_error())来捕获错误呢

做这样的事

if($result === FALSE) {
    die(mysql_error()); // TODO: better error handling
}

while($run = mysql_fetch_array($result)){
    $surname = $run['surname'];
}

正如@Mike指出的,您有一个语法错误,==>2倍限制

您在查询中使用了两次
限制
,请删除任何一个。有关如何解决此问题,请参阅。检查错误消息echo mysql\u errno($link)。“:”。mysql\u error($link)。“\n";供参考。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果选择PDO,。您在查询中使用了两次
LIMIT
,请删除任何一个。有关如何解决此问题,请参阅。检查错误消息echo mysql\u errno($link)。": " . mysql\u错误($link)。“\n”;供参考。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,。哦,我明白了,我这样使用限制2次…哦,我明白了,我这样使用限制2次。。。