Php 执行查询时出现获取错误(T_变量)

Php 执行查询时出现获取错误(T_变量),php,mysql,Php,Mysql,我有一个脚本,可以从internet下载rss提要并将其存储在Microsoft SQL数据库中。 它工作得很好,我可以下载RSS提要并将其存储在MSSQL数据库中 但是我在执行查询时遇到了一个错误: PHP分析错误:语法错误,第37行的C:\phptest\test7.PHP中出现意外的“$item”(T_变量) 这个错误查询应该检查数据库中的重复提要,但它不起作用 php脚本 <?php try { $con = new PDO("sqlsrv:Server=hadi-tosh;D

我有一个脚本,可以从internet下载rss提要并将其存储在Microsoft SQL数据库中。 它工作得很好,我可以下载RSS提要并将其存储在MSSQL数据库中

但是我在执行查询时遇到了一个错误:

PHP分析错误:语法错误,第37行的C:\phptest\test7.PHP中出现意外的“$item”(T_变量)

这个错误查询应该检查数据库中的重复提要,但它不起作用

php脚本

<?php


try {
$con = new PDO("sqlsrv:Server=hadi-tosh;Database=rssfeed", "rssuser", "rssuser");
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");

$url = "http://www.albaldnews.com/rss.php?cat=24";
$rss = simplexml_load_file($url);

if($rss)
{
$items = $rss->channel->item;
foreach($items as $item)
{
$source = "اخبارالبلد";
$title = $item->title;
$link = $item->link;
$published_on = $item->pubDate;
$description = $item->description;
$category = $item->category;
$guid = $item->guid;
$enclosure = $item->enclosure[0]['url'];
$img2 = $item->enclosure[0]['url'];

$ch = curl_init ($enclosure);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec ($ch);
curl_close ($ch);
$img = "$rawdata";

$query = $con->prepare('SELECT * from [feedtable] where title = '$item->title' AND link = '$item->link' AND published_on = '$item->pubDate' AND description = '$item->description' AND category = '$item->category' AND image = '$img' AND imagelink = '$img2' AND source = '$source'');

$query->execute();
$num_rows = $query->fetchColumn();

if($num_rows == 0)

{


      $stmt = $con->prepare('insert into [feedtable] (title,link,pubdata,description,category,image,imagelink,source) values (:title,:link,:pubdata,:description,:category,:image,:imagelink,:source)');
    $stmt->bindParam(':title',$item->title);
    $stmt->bindParam(':link',$item->link);
    $stmt->bindParam(':pubdata',$item->pubDate);
    $stmt->bindParam(':description',$item->description);
    $stmt->bindParam(':category',$item->category);
    $stmt->bindParam(':image',     $img, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY);
    $stmt->bindParam(':imagelink',$img2);
    $stmt->bindParam(':source', $source );


$stmt->execute();    

echo "albaldnews feeds added\n";
}

else 
{
echo "albaldnews duplicate entry\n";

}



}
}
}

catch (PDOException $e) {

exit("Connection failed: " . $e->getMessage());
}

?> 
channel->item;
foreach($items作为$item)
{
$source=“بببببببد”;
$title=$item->title;
$link=$item->link;
$published_on=$item->pubDate;
$description=$item->description;
$category=$item->category;
$guid=$item->guid;
$enclosure=$item->enclosure[0]['url'];
$img2=$item->enclosure[0]['url'];
$ch=curl_init($enclosure);
curl_setopt($ch,CURLOPT_头,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,1);
$rawdata=curl\u exec($ch);
卷曲关闭($ch);
$img=“$rawdata”;
$query=$con->prepare('SELECT*from[feedtable],其中title='$item->title'和link='$item->link',published_on='$item->pubDate'和description='$item->description'和category='$item->category'和image='$img'和imagelink='$img2'和source='$source'');
$query->execute();
$num_rows=$query->fetchColumn();
如果($num_rows==0)
{
$stmt=$con->prepare('insert-into[feedtable](标题、链接、pubdata、描述、类别、图像、图像链接、源)值(:标题、:链接、:pubdata、:描述、:类别、:图像、:图像链接、:源));
$stmt->bindParam(':title',$item->title);
$stmt->bindParam(':link',$item->link);
$stmt->bindParam(':pubdata',$item->pubDate);
$stmt->bindParam(':description',$item->description);
$stmt->bindParam(':category',$item->category);
$stmt->bindParam(':image',$img,PDO::PARAM_LOB,0,PDO::SQLSRV_ENCODING_BINARY);
$stmt->bindParam(':imagelink',$img2);
$stmt->bindParam(':source',$source);
$stmt->execute();
echo“添加了albaldnews源\n”;
}
其他的
{
回显“albaldnews重复条目\n”;
}
}
}
}
捕获(PDO$e){
退出(“连接失败:”..e->getMessage());
}
?> 

您没有正确连接查询

您需要在
$query=$con->prepare
行中的每个报价之后添加
。您还需要在每个变量周围添加转义的
,以便SQL Server能够正确读取您的值

例如:
从[feedtable]中选择*,其中title=\''$项目->标题。“\”和link=\''$项目->链接。“\”和…


该行的其余部分依此类推。

此处的关键字是可能重复的连接@Rizier123我根据文章更改了代码,但没有工作
id=“$id.”我按照你的要求做了
$query=$con->prepare('SELECT*from[feedtable]其中title=\'.$item->title.\'和link=\'.$item->link.'\'和published'.$item->pubDate.'\'和description=\'.$item->description.'\'和category=\'.$item->category.'\'和image=''.$img.'.'.$img2.'''.'和source='.$source.'.''.$source.'''''.''.''.'''''.'''但im从sql获取img错误
SQLSTATE[IMSSP]:替换命名参数时出错。