开发者_如何学JAVAI use Postgresql + PHP.
Say I have this table:
Books ( id, title, year )
and this array of titles in PHP:
$titles = array ("bible","kafka","Book of Eli");
now I want update all rows where the title is in the $titles array above.
So I need a query like this:
UPDATE books SET year = '2001-11-11' WHERE title is in $titles;
Is is possible with one single query ? Or do I need to use FOR loop ?
It's possible, you were actually quite close.
For the SQL, the syntax looks like this:
UPDATE books SET year = '2001-11-11' WHERE title IN ('bible','kafka','Book of Eli');
To generate that using PHP, you'll want to do something like this:
$query = "UPDATE books SET year = '2001-11-11' WHERE title IN ('" . implode("','", $titles) . "');'";
The PHP implode() function joins array elements together using a string, so I put ',' between all of them, with the initial and final ' being put in the string manually.
Note that this will currently fail if any of the titles contain an apostrophe. If that's a possibility you will need to escape those.
You can use the implode() function, which will let you turn the array into a comma-separated string:
$titles = array ("bible","kafka","Book of Eli");
$comma_separated = implode(",", $array)
$sql = "UPDATE books SET year = '2001-11-11' WHERE title is in (" . $comma_separated .")"
What about
$sql = "UPDATE books SET year = '2001-11-11' WHERE title in ('".implode("','",$titles)."')";
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论