数据库图像然后更新=错误,更新然后图像=成功!为什么?

时间:2010-11-08 06:20:18

标签: php mysql mysqli

所以我遇到了一个令人困惑的(程序员造成的)错误,我是程序员。

我创建了一个包含用户个人资料的网站。用户配置文件包含许多字段和图像。图像上传得很好。首先,它被转换为适合某个区域。

...
//我正在将图像上传到数据库 imageConverter-> loadImage($ _ FILE ... blah balh)。
...

当用户决定改变他的信息时,他也有机会改变他的照片。编辑配置文件过程与配置文件启动过程完全相同。唯一的区别是我检查他/她一次更新一个字段,并在数据库中更改该特定行(显然这可以最佳地完成,但首先我希望它工作:))

令人困惑的是这个。当我编辑个人资料信息时,顺序就是这样。 我使用MYSQLI($ this-> mysqli-> query($ query))。

这些是在数据库中编辑的,如果它们已经改变

  • 1 firstname
  • 2姓氏
  • 3密码
  • 4种不同的偏好(复选框/单选按钮)。
  • 5封电子邮件
  • 6个头像。
  • 7更新会话信息,并向数据库查询以获取最新信息。

现在#7返回false(SELECT * FROM USERSINFO)

现在,如果我切换行动顺序。

  • 1 firstname
  • 2姓氏
  • 3密码
  • 4种不同的偏好(复选框/单选按钮)。
  • 5封电子邮件
  • 6更新会话信息,并向数据库查询以获取最新信息。
  • 7个头像。

它的效果很好。

任何答案?这是否意味着,如果有1000个人一次尝试使用我的数据库,那么所有内容都会破坏?

一些代码:

插入图像(非工作示例中的步骤#6,工作示例中的#7)
$ this-> mysqli-> query(“DELETE FROM”.DB_REVIEW_IMAGE_TABLE。“WHERE email ='$ email'”);
if($ this-> mysqli-> query(“INSERT INTO”.DB_REVIEW_IMAGE_TABLE。“VALUES('$ email','$ content','$ imageType')”))

< / p>

将用户信息更新为会话信息。 (不好的例子中的步骤#7,工作示例中的#6)
$ this-&gt; userInfo = $ _SESSION [SESSION_USER_INFO] = $ database-&gt; getUserInfo($ this-&gt; email);

其中$ database-&gt; getUserInfo($ this-&gt; email)==“SELECT”.DB_USERS_ALL_MOUNTAIN。“,”。DB_USERS_BACK_COUNTRY。“,”。DB_USERS_GROOMERS。“,”。DB_USERS_PARK。“,”。DB_USERS_SEASON_DAYS。“,” .DB_USERS_SEX。“,”。DB_USERS_YEARS。“,”。DB_USERS_FIRST_NAME。“,”。DB_USERS_LAST_NAME。“,”。DB_USERS_CITY。“,”。DB_USERS_STATE。“FROM”.DB_USER_INFO_TABLE.SQL_WHERE_EMAIL

我喜欢使用常量:)。并且DB_USERS_SEX =男性或女性(以防万一)

迈克尔

1 个答案:

答案 0 :(得分:0)

好的答案很简单。

我的数据库类有一个名为$ mysqli的模块级var。这个$ mysqli以某种方式同时被使用。

我进行了2次连续调用。

  • updatePic
  • updateSessionInfo

每个人都使用数据库。但是通过模块化级别var $ mysqli会以某种方式导致冲突。特别是因为会话信息和图片信息在两个不同的数据库中。我一定不太了解php,但这些必须在另一个完成之前执行。因此,为了解决这个问题,数据库中的每个方法都是

  • 创建与数据库的连接
  • 设置要使用的数据库。
  • 执行查询
  • 关闭连接/结果集。

现在有效!