I know it is possible to execute multiple SQL queries in PHP, however I do not know all of the specifics. I use the PDO method so I'll go with that for this post. I honestly can't say if the typical mysql or mysqli is able to what you want though.
$dbh = new PDO('mysql:host=localhost;dbname=DATABASE_NAME', 'MYSQL_USER', 'MYSQL_PASSWORD');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$q = $dbh->prepare("DELETE a FROM wp_posts AS a INNER JOIN ( SELECT post_content, MIN( id ) AS min_id FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' GROUP BY post_content HAVING COUNT( * ) > 1 ) AS b ON b.post_content = a.post_content AND b.min_id <> a.id AND a.post_type = 'post' AND a.post_status = 'publish';
DELETE FROM wp_posts
WHERE post_content NOT LIKE '%<img src=%'AND ID not in (select post_id as p from wp_postmeta where meta_key like '_wp_attached_file')
OR `post_title` like '%.png%'
OR post_date < DATE_SUB(NOW(), INTERVAL 15 day);");
$q->execute();
I'll also note that PHP should be returning a relative location where the syntax error occurs in the query. Might be something to look in to (and post if the problem persist).