php mysql 语句不工作

标签: MySQL PHP
发布时间: 2017/1/11 19:18:06
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有下面做工精细的 php mysql 语句︰

if (isset($_GET['name'])) {

        $data = "%".$_GET['name']."%";
        $sql = 'SELECT * FROM tbl_clients WHERE fname like ?';

        $stmt = $conn->prepare($sql);

        $results = $stmt->execute(array($data));

        $rows = $stmt->fetchAll();
        $error = $stmt->errorInfo();
    }

但我想这样它就可以检查到列名称变量中添加以下内容︰

$sql = 'SELECT * FROM tbl_clients WHERE fname like ? or lname like ?';

如果修改了此语句用于上述它出与下列错误︰

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /var/www/www.test.com/search.php on line 38 

解决方法 1:

在更新查询中,您有两个参数,但你只走到一个值 execute 。只是解决这一问题,和它将工作︰

$results = $stmt->execute(array($data, $data));
赞助商