Php PDO查询检查值是否存在

Php PDO查询检查值是否存在,php,mysql,pdo,Php,Mysql,Pdo,我正在使用excelreader,我不想查询数据库来检查xls文件中的名称是否存在,如果存在,它将抛出一个查询: 名称1-存在 名称2-不存在 我尝试了一些方法,但这就是我现在所拥有的: <?php require_once '../php/excelreader/reader.php'; $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('CP1251'); $file = $_FILES['xl

我正在使用excelreader,我不想查询数据库来检查xls文件中的名称是否存在,如果存在,它将抛出一个查询:

名称1-存在 名称2-不存在

我尝试了一些方法,但这就是我现在所拥有的:

<?php

require_once '../php/excelreader/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');


$file = $_FILES['xls'];

$data->read($file['tmp_name']);

$results = '';

var_dump($data);

$sql_details = array(
    'user' => 'root',
    'pass' => 'root',
    'db'   => 'database',
    'host' => 'localhost'
);


    $db = new PDO('mysql:host='.$sql_details['host'].';dbname='.$sql_details['db'], $sql_details['user'], $sql_details['pass']);
    $stmt = $db->prepare("SELECT name FROM users WHERE name = ?");
    $stmt->bindParam(5, $value);
    $stmt->execute();

foreach($data->sheets[0]['cells'] as $value){
    $curBrand = $value[1];

    if( $stmt->rowCount() > 0 ) { # If rows are found for query
     echo "$value[1] found!";
    }
    else {
         echo "$value[1] not found! <br/>";
    }

}



?>

这不管用,我不知道怎么做,因为我对它很陌生

上面的代码只是呼应:

找不到测试! 找不到test2! 找不到TTES4! 找不到gasdgf

它还抛出一个错误:
警告:PDOStatement::execute():SQLSTATE[HY093]:无效参数编号:第27行的/home/server/data/compare.php中未定义参数

需要参数的1索引位置。你正在使用

$stmt->bindParam(5, $value);
5
应该是
1
。此外,正如许多其他人指出的那样,
$value
此处未设置。在尝试运行查询之前,您不会设置它

如果您坚持使用诸如“name”之类的关键字/保留字,则还应在查询中使用反勾号:

$stmt = $db->prepare("SELECT `name` FROM `users` WHERE `name` = ?");
添加
$->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常)打开连接后立即捕获PDO错误。在打开
后立即将错误报告添加到文件顶部,该文件需要参数的1索引位置。你正在使用

$stmt->bindParam(5, $value);
5
应该是
1
。此外,正如许多其他人指出的那样,
$value
此处未设置。在尝试运行查询之前,您不会设置它

如果您坚持使用诸如“name”之类的关键字/保留字,则还应在查询中使用反勾号:

$stmt = $db->prepare("SELECT `name` FROM `users` WHERE `name` = ?");
添加
$->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常)打开连接后立即捕获PDO错误。在打开
后立即将错误报告添加到文件顶部,该文件需要参数的1索引位置。你正在使用

$stmt->bindParam(5, $value);
5
应该是
1
。此外,正如许多其他人指出的那样,
$value
此处未设置。在尝试运行查询之前,您不会设置它

如果您坚持使用诸如“name”之类的关键字/保留字,则还应在查询中使用反勾号:

$stmt = $db->prepare("SELECT `name` FROM `users` WHERE `name` = ?");
添加
$->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常)打开连接后立即捕获PDO错误。在打开
后立即将错误报告添加到文件顶部,该文件需要参数的1索引位置。你正在使用

$stmt->bindParam(5, $value);
5
应该是
1
。此外,正如许多其他人指出的那样,
$value
此处未设置。在尝试运行查询之前,您不会设置它

如果您坚持使用诸如“name”之类的关键字/保留字,则还应在查询中使用反勾号:

$stmt = $db->prepare("SELECT `name` FROM `users` WHERE `name` = ?");

添加
$->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常)打开连接后立即捕获PDO错误。打开
后立即将错误报告添加到文件顶部,因为您只有一个参数,所以:

  $stmt->bindParam(5, $value);
您告诉“查询”您有5个参数。 更正为1

 $stmt->bindParam(1, $value);

您只有一个参数,因此:

  $stmt->bindParam(5, $value);
您告诉“查询”您有5个参数。 更正为1

 $stmt->bindParam(1, $value);

您只有一个参数,因此:

  $stmt->bindParam(5, $value);
您告诉“查询”您有5个参数。 更正为1

 $stmt->bindParam(1, $value);

您只有一个参数,因此:

  $stmt->bindParam(5, $value);
您告诉“查询”您有5个参数。 更正为1

 $stmt->bindParam(1, $value);

首先访问此链接,然后将其与查询中使用的内容进行比较。另外,请访问并获取真正的原因/错误,并可能请查看您的代码,这完全是不正确的。请访问此链接,然后将其与您在查询中使用的内容进行比较。另外,请访问并获取真正的原因/错误,并可能请查看您的代码,这完全是不正确的。请访问此链接,然后将其与您在查询中使用的内容进行比较。另外,请访问并获取真正的原因/错误,并可能请查看您的代码,这完全是不正确的。请访问此链接,然后将其与您在查询中使用的内容进行比较。另外,请访问并了解真正的原因/错误,并可能请查看您的代码,这完全是不存在的。哦,如果这就是代码的全部错误就好了。在执行查询之前,您(这是OP而不是Jay)不会为
$value
提供实际值。因此,无论如何查询都不会按预期进行。错误已经消失,非常感谢@我现在需要做什么?我不知道该怎么办我被卡住了我从你的代码中不知道你到底想做什么。也许你应该雇佣一个开发人员。哦,如果这就是代码的全部错误就好了。在执行查询之前,您(这是OP而不是Jay)不会为
$value
提供实际值。因此,无论如何查询都不会按预期进行。错误已经消失,非常感谢@我现在需要做什么?我不知道该怎么办我被卡住了我从你的代码中不知道你到底想做什么。也许你应该雇佣一个开发人员。哦,如果这就是代码的全部错误就好了。在执行查询之前,您(这是OP而不是Jay)不会为
$value
提供实际值。因此,无论如何查询都不会按预期进行。错误已经消失,非常感谢@我现在需要做什么?我不知道该怎么办我被卡住了我从你的代码中不知道你到底想做什么。也许你应该雇佣一个开发人员。哦,如果这就是代码的全部错误就好了。在执行查询之前,您(这是OP而不是Jay)不会为
$value
提供实际值。因此,无论如何查询都不会按预期进行。错误已经消失,非常感谢@我现在需要做什么?我不知道该怎么办我被卡住了我从你的代码中不知道你到底想做什么。也许你应该雇佣一个开发者。