PHP 中的 MySQL 查询不再有效

Posted

技术标签:

【中文标题】PHP 中的 MySQL 查询不再有效【英文标题】:MySQL query in PHP no longer works 【发布时间】:2016-01-08 19:25:33 【问题描述】:

我接手了这个网站的维护,我只知道MySQL的基本命令。当 WordPress 更新到 4.3.1 版时,此查询停止工作。在那之前几个月都运行良好。

用户将信息输入到一个表单中,该表单传递到 MySQL 数据库,这仍然有效。然后从填写的表格中提取数据,并通过电子邮件发送给公司。电子邮件通过,但字段为空。

'$query = "INSERT INTO ..._app (appid,$insert_keys) VALUES ('',$insert_values)";

mysql_query($query)
            or die(mysql_error());

$app_query = mysql_query("SELECT MAX(appid) AS appid FROM ..._app")
    or die(mysql_error());
$app_row = mysql_fetch_array($app_query);
extract($app_row);
$agent_msg = "...
    \n
    Application ID: $appid\n
    Borrower Information\n
    First Name: $fname\r
    Middle: $mname\r
    Last Name: $lname\r

...等等。是的,我知道这是不推荐使用的 MySQL,但客户端此时不愿意重写所有内容。当 WordPress 更新时这停止工作似乎太巧合了。我不确定它是否可以在 MySQL code 中修复。

【问题讨论】:

你好。您是否能够以纯文本形式获取查询并在数据库中运行它以区分 php 问题或数据库问题?您可能会看到查询的纯文本版本不是您所期望的并找到您的问题。 对我来说更新 WordPress 会导致这个程序。你能降级吗? Fwiw,我不认为这是 Wordpress 更新,但主机同时更新 PHP 似乎是合理的。您可能可以通过 cpanel 将其降级 - 尽管您当然应该通过正确使用准备好的语句将代码真正更新为不那么容易受到攻击的东西 您是否收到错误消息?如果有,请发布。 恕我直言,如果客户不愿意重写代码,您应该拒绝网站上的任何支持;让他们知道由于存在漏洞,它已被弃用,并且您不愿意提供低于标准的黑客和解决方法。 【参考方案1】:

您应该检查所有表单字段名称并使用 print_r($_REQUEST) 进行调试,看看它是否会返回所有字段。如果是的话,你也可以试试下面的WP功能:

global $wpdb;
$wpdb->insert( 'table name', array( 'field 1' => $_REQUEST['field 1'], 'field 2' => $_REQUEST['field 2']));

【讨论】:

我可以在同一个文档的 MySQL 代码中混合这里编写的 WP 函数吗?

以上是关于PHP 中的 MySQL 查询不再有效的主要内容,如果未能解决你的问题,请参考以下文章

查询在 mysql 工作台中有效,但在 php 中无效,不知道为啥

mysql“日期之间”查询在 phpmyadmin 中有效,但 PDO 不返回任何内容

与 MySQL 合作多年的 Perl 脚本在升级到 MariaDB 后不再有效

只进行一次查询并将其存储在数组中还是每次都进行查询更有效?

Oracle SQL 开发人员中的有效查询在 SSIS 中无效

查询在 MySQL 中有效,但不能通过 Lumen/Laravel - 数值超出范围:1416