我仍然对PDO语句有所了解,但是下面的代码并没有实现我认为的那样

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

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

这确实会更新我的数据库,但仅使用“当前”,并且temp值丢失,

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

请帮忙吗?

===============>>#1 票数: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关键字。

===============>>#2 票数:-1

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

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

  ask by Mick translate from so

未解决问题?本站智能推荐:

1回复

使用concat的pdo更新语句不起作用

我对PDO还是陌生的,并且无法使下面的更新语句起作用。 我希望能够通过仅用逗号和新名称附加到当前值来更新名称字段。 结果名称字段应为james,doug,paul等。 这可能是一个简单的答案,但是我无法通过大量的搜索来找到解决方案! 提前致谢
1回复

使用PDO更新旧的Mysql语句

如何将该旧语句更新为PDO语句? 旧的: 和新的一个PDO 谢谢!
1回复

数据库未使用PDO语句更新?

语句的语法有问题吗? 我一直在把不同的变量插入代码中,但在phpmyadmin中它仍然不会更新。 这种语言很新,所以请忍受我。 可以肯定的是,出现问题的行是: 我只是不知道问题是什么...
2回复

将mysqli脚本更新为PDO语句

我是菜鸟,我正在PDO领域中迈出第一步,我正在尝试将此脚本从mysqli更新为PDO。 该脚本用于通过jQuery从数据库中删除记录。 与mySql DB的新连接: 问题与DELETE脚本有关。 这是原始的(摘自本教程: https : //makitweb.com/how-t
1回复

PHP的PDO语句不更新表?

我正在尝试使用以下代码更新表,但始终将rowcount为0 ,并且表未更新。 当我使用phpmyadmin时,同一查询将更新表。
3回复

MySQL更新使用PDO和预处理语句不起作用

我的php PDO和mysql有一个奇怪的问题。 我有下表: 单排: 当我尝试使用预准备语句更新此单行时,根据我使用的语法,我得到了不同的行为: ================================================== =======
1回复

使用PHP的PDO MYSQL准备的更新语句未执行

我正在尝试通过MySQL数据库上的PHP使用PDO执行准备好的语句。 我尝试了两个版本的代码都没有用。 函数更新将执行,但是数据库中将没有任何更新。 我使用fetch()和fetchAll()的view customerData函数都与​​我的deleteData函数一样工作。
2回复

pdo使用通配符准备语句

我要执行以下mysql查询: 我尝试了一下但没有成功: 因此,我问您是否可以在准备好的语句中使用%通配符。 /编辑 谢谢。 它与bindValue一起工作:
1回复

使用PDO获取if语句

从相同功能的同一张表中获取两次会导致问题吗? 我试图从登录用户获取所有“项目”,如果用户没有项目,则该函数应返回false,否则,应返回false并回显“ nothing”,如果数据库中有来自登录用户的项目,则应返回返回true并回显所有项目名称。 一切正常,除了第一个项目被切除,因此,
1回复

无法使用PDO更新表

我有一个数据和查询如下: Tghough我总是得到输出 NULLED Added 实际上数据没有更新! 怎么了 。 客户ID AMI16025存在于数据库中