【发布时间】:2012-01-14 20:42:06
【问题描述】:
通过 SQLITE3 使用 PDO 到 CRUD。当我插入一个字符串 'did't' 时,该字符串会以 'didn\'t' 的形式进入表中。
所以,后来当我读回字符串以输出到 HTML 时,我的网页中没有。
那么,如果 PDO 使用反斜杠对 INSERT 上的单引号进行转义,我如何去除转义的反斜杠以进行演示?
这有意义吗?
编辑 - 包括代码。 $eventBody 是有问题的字符串。
try {
$db = new PDO('sqlite:../posts.sqlite');
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(PDOException $e)
{
echo $e->getMessage();
die;
}
//using the sqlite functions to do date/time stuff
$query = 'INSERT INTO posts (eDay, eMonth, eYear, eTitle, eBody,author, eURL, eTime)
VALUES( strftime(\'%d\',\'now\') , strftime(\'%m\',\'now\') , strftime(\'%Y\',\'now\') ,"'. $eventTitle .'","'.$eventBody.'","' . $eventAuthor. '","' . $eventURL . '",time(\'now\',\'localtime\'));' ;
try
{
$result=$db->query($query);
if(!($result))
{
echo "INSERT FAILED.<br>";
echo "QUERY STRING: ".$query ." <br>";
die;
}
echo "Successfully Added Record";
$eventTitle = '';
$eventBody='';
$eventURL='';
$eventAuthor='';
// urlRedirect("Referback.php");
}
catch (PDOException $ex)
{
echo $ex->getMessage();
die;
}
catch (Exception $exc)
{
echo $exc->getMessage();
die;
}
}
【问题讨论】:
-
能否提供插入代码?
-
好的,构建查询的方式无法正常工作,因为您将 PHP 和 SQL 混合在一起。