【问题标题】:PHP 7.0 not inserting in MySQL row using INSERT CommandPHP 7.0 未使用 INSERT 命令插入 MySQL 行
【发布时间】:2017-05-27 11:10:49
【问题描述】:

这是适用于 PHP 5.3 而不是 5.4 及更高版本的插入代码。

$statement = mysqli_prepare($con, "INSERT INTO user (`username`, `password`, `primary_number`, `alternate_number`, `email`) VALUES (?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "sssss", $username, $password, $primaryno, $alternateno, $email);
mysqli_stmt_execute($statement);

它在一些旧的 PHP 版本中正常工作,当我更改服务器时,默认选择 PHP 7.1。 我很沮丧,因为我找不到问题所在。但现在我找到了,我不知道为什么会这样

该代码在 PHP 5.2、5.3 中完美运行,但不能高于此。我需要进行哪些修改才能使其也适用于其他版本?

【问题讨论】:

  • 检查您的错误日志
  • 您需要配置 PHP 以便可以看到错误消息(在屏幕上或登录到文件中)。重写代码并添加一些错误检查也不会受到伤害(我建议只配置 mysqli 以引发异常)。

标签: php mysql sql sql-insert


【解决方案1】:

您使用的函数似乎与 "自 PHP 5.3.0 起已弃用并自 PHP 5.4.0 起已删除" 的函数有关: http://php.net/manual/en/function.mysqli-bind-param.php

它被删除的 PHP 版本往往会与您的问题发生的 PHP 版本保持一致,所以我首先意识到这一点,但我已经尝试了您的代码,它似乎对我有用。 尝试使用 mysqli_report(MYSQLI_REPORT_ALL); 并检查 phpinfo(); 是否有差异,也许可以尝试其他 MySQL 版本。

我试过你的代码,它似乎可以正常工作:

-PHP 5.5.12
-MySQL 5.6.17
-Apache 2.4.9

希望这会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-02
  • 2010-12-27
  • 2016-07-27
  • 1970-01-01
  • 2021-06-08
  • 2011-11-14
相关资源
最近更新 更多