$userArr = implode(",", $array(66,1,33,54));
SELECT s.id, s.customer_id, s.status, COUNT(s.status) AS count
FROM statuses AS s
INNER JOIN products AS p ON (p.status = s.status_name)
WHERE s.customer_id = 1 AND p.modified BETWEEN "2015-08-10" AND "2015-09-10" AND p.user_id IN ($userArr)
GROUP BY s.status
/* Execute a prepared statement using an array of values for an IN clause */
$params = array(1, 21, 63, 171);
/* Create a string for the parameter placeholders filled to the number of params */
$place_holders = implode(',', array_fill(0, count($params), '?'));
/*
This prepares the statement with enough unnamed placeholders for every value
in our $params array. The values of the $params array are then bound to the
placeholders in the prepared statement when the statement is executed.
This is not the same thing as using PDOStatement::bindParam() since this
requires a reference to the variable. PDOStatement::execute() only binds
by value instead.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
'WHERE id in (?,?,?,?,?,?,?)'
и собачить типизированные параметры
->bindParam(1, $id, PDO::PARAM_INT);
->bindParam(2, $id, PDO::PARAM_INT);
...
Но это за тебя сделает
вот эта штука
$place_holders = implode(',', array_fill(0, count($params), '?'));
насколько я понял.
-- Временная таблица для разложения qwe на буквы
CREATE TEMPORARY TABLE qwe (letter VARCHAR (10));
INSERT INTO qwe (letter) VALUES('q');
INSERT INTO qwe (letter) VALUES('w');
INSERT INTO qwe (letter) VALUES('e');
-- Временная таблица для разложения rty на буквы
CREATE TEMPORARY TABLE rty (letter VARCHAR (10));
INSERT INTO rty (letter) VALUES('r');
INSERT INTO rty (letter) VALUES('t');
INSERT INTO rty (letter) VALUES('y');
-- Временная таблица для разложения uio на буквы
CREATE TEMPORARY TABLE uio (letter VARCHAR (10));
INSERT INTO uio (letter) VALUES('u');
INSERT INTO uio (letter) VALUES('i');
INSERT INTO uio (letter) VALUES('o');
-- Тестовая таблица для поиска.
CREATE TEMPORARY TABLE abc (letter VARCHAR (10));
INSERT INTO abc (letter) VALUES('u');
INSERT INTO abc (letter) VALUES('qtiskdk');
INSERT INTO abc (letter) VALUES('eyudkdk');
INSERT INTO abc (letter) VALUES('zzzzzzzzz');
-- SELECT CONCAT(qwe.letter, rty.letter, uio.letter, '%') AS pref FROM qwe, rty, uio -- этот запрос вернет cross join для всех сочетаний букв в нужном порядке. Для всех сочетаний будет добавлен знак % в конце.
-- Теперь объединяем две таблицы и выводим только те записи которые удовлетворяют условию LIKE
SELECT * FROM abc AS t
INNER JOIN (SELECT CONCAT(qwe.letter, rty.letter, uio.letter, '%') AS pref FROM qwe, rty, uio) AS c
ON t.letter LIKE c.pref
if (!$res) {
die('Неверный запрос: ' . mysql_error());
}
error_reporting(E_ALL);
ini_set("display_errors", 1);
ВНИМАНИЕ: Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL.
UPDATE wp_posts SET post_content = REPLACE(post_content,'www.domain.com/wp-content/uploads/sites/5','www.domain.com/wp-content/uploads');