【问题标题】:UPDATE statement not working, but works in phpMyAdmin & live hostUPDATE 语句不起作用,但在 phpMyAdmin 和 live 主机中有效
【发布时间】:2015-05-02 06:00:51
【问题描述】:

我在下面有这个更新声明:

string_from_base64_encode_ends_with = base64_encode(serialize($_POST));

UPDATE members SET settings = 'string_from_base64_encode_ends_with=='
WHERE email = "right@emailhere.com" AND active=1
  1. (localhost) 当我用mysql_query()处理时,真实记录没有更新,虽然mysql_affected_rows() 返回1

    李>
  2. (localhost) 但是当我复制这个 UPDATE 语句然后通过 phpMyAdmin 处理;它有效,mysql_affected_rows() 返回 1 & 真正更新的真实记录

  3. (live host) 有了这些代码,没有变化,当我在 live host 上运行时;一切都很好:记录更新,mysql_affected_rows() 返回1

你能帮我找出 MySQL 服务器的问题吗?还是别的什么?

非常感谢

PS:所有其他 UPDATE 语句在 localhost 和 live 主机上都可以,已更新;这句话只是问题

【问题讨论】:

  • 能多给点php代码吗
  • 真的谢谢你,但代码就是这样;这里有更多解释

标签: php mysql phpmyadmin


【解决方案1】:

您需要使用 mysql_real_escape_string() 转义字符串

$string = mysql_real_escape_string("string_from_base64_encode_ends_with==");
 mysql_query("UPDATE members SET settings = '".string ."' WHERE email = \"right@emailhere.com\" AND active=1");

【讨论】:

  • 这会有什么不同?
猜你喜欢
  • 1970-01-01
  • 2021-04-12
  • 2013-01-23
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 2014-11-21
  • 2021-11-29
相关资源
最近更新 更多