使用PDO语句更新

时间:2013-04-16 16:41:54

标签: php mysql pdo

我仍然围绕PDO声明,但下面的代码没有按照我的假设做到

  $temp = "6c ";    
  $weather_report = "Its currently $temp " ; 

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

这会更新我的数据库,但只能使用'当前'并且缺少临时值,

阅读一些文章后,我相信我需要使用引用,但我不确定如何实现它?

有什么帮助吗?

2 个答案:

答案 0 :(得分:5)

请使用查询参数,而不是将变量插入到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关键字。

答案 1 :(得分:-1)

虽然比尔已经回答了这个问题,但我想补充一下:

不要在TEXT列中使用命名参数,至少不使用MySQL。它不会起作用。请改用问号。