php - 如何将传递的字符串匹配到检查 mysql 数据库的 php 函数

标签 php mysql

我写了一个函数,它接受一个数据库和一个字符串,并在数据库中找到一个匹配项并返回书 ISBNS 的相应值。但是它对我不起作用......我认为问题出在我匹配名称....所以例如我有 Jack Thorne....当我将它传递给函数时,我应该在两者之间放置一个逗号,因为我从名字列和姓氏中获取名字 Jack从姓氏列....我试图故意传递一个我知道存在的作者的名字但它没有返回任何东西..请帮助 这是函数

function booksByAuthor($db,$author){
    $query='SELECT isbn FROM books_authors WHERE author_id = (SELECT author_id FROM authors WHERE first_name,last_name = :author)';
    $statement = $db->prepare($query); 
    $statement->bindValue(':author', $author);
    $statement->execute(); 
    $isbns= $statement->fetchAll();  
    $statement->closeCursor();  
    return $isbns; 
}

最佳答案

试试这个:

$query='SELECT isbn FROM books_authors 
WHERE author_id IN 
(SELECT author_id FROM authors WHERE first_name =:author OR last_name = :author)';

equals 更改为 IN - 因为 SELECT author_id ... 语句将创建多个结果。

first_name =:author OR last_name = :author - 获得将查看 first_name 或 last_name 列的结果。

关于php - 如何将传递的字符串匹配到检查 mysql 数据库的 php 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40414299/

相关文章:

mysql - 设计器不只处理 MySQL 关系

php - MySQL:是否可以在更新时对字段进行大小写?

java - PHP 中的只读 for 循环

php - 如何在wordpress中使用API

javascript - RxJS.fromCallback() 不适用于 MySqlJs 查询方法

mysql - 如何编写正确的load data infile命令?

php - 使用 php 和 sql 的登录页面无法正常工作

php - 在 PhpExcel codeigniter 中强制下载 excel 时显示未知字符

php - Laravel 将两个模型加入用户模型

mysql - Nifi用于数据库迁移