使用PDO语句更新


Update using PDO statement

我仍然在理解PDO语句,但是下面的代码并没有像我想象的那样做

  $temp = "6c ";    
  $weather_report = "Its currently $temp " ; 
  $qry = $pdo->exec("UPDATE data_weather SET text= '$weather_report' WHERE period='report' ");

这确实更新了我的数据库,但只与'Its当前'和temp值丢失,

在阅读了一些文章后,我认为我需要使用quote,但我不确定如何实现它?

请帮忙好吗?

请使用查询参数而不是在SQL字符串中插入变量。
它更安全,更快捷,更方便。

$temp = "6c ";    
$weather_report = "It's currently $temp " ; 
$sql = "UPDATE data_weather SET text= ? WHERE period='report'";
$stmt = $pdo->prepare($sql);
$stmt->execute(array($weather_report));

注意你不需要给字符串加引号。事实上,不能?占位符周围加引号。您可以安全地在天气预报字符串中使用撇号。

您可以在SQL表达式中通常放置单个标量值的任何位置使用参数占位符。例如,代替带引号的字符串、带引号的日期或数字字面值。但不能用于表名、列名、值列表或SQL关键字。

虽然Bill已经回答了这个问题,但我想补充一句:

不要在TEXT列中使用命名参数,至少在MySQL中是这样。这行不通。用问号代替。