我仍然围绕PDO声明,但下面的代码没有做我想象的那样
$temp = "6c ";
$weather_report = "Its currently $temp " ;
$qry = $pdo->exec("UPDATE data_weather SET text= '$weather_report' WHERE period='report' ");
Run Code Online (Sandbox Code Playgroud)
这确实更新了我的数据库,但只有'当前'并且缺少临时值,
在阅读了一些文章后,我相信我需要使用引用,但我不确定如何实现它?
有什么帮助吗?
请使用查询参数而不是将变量插入到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));
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要引用该字符串.实际上,您不能在?占位符周围加上引号.您可以安全地在天气报告字符串中使用撇号.
您可以在任何通常将单个标量值放在SQL表达式中的位置使用参数占位符.例如,代替带引号的字符串,引用日期或数字文字.但不是表名或列名,或值列表或SQL关键字.