douge3830 2014-11-14 06:55
浏览 126

无法在WPDB UPDATE查询中获取变量

I've tried all I can but this query will not work. I've tried prepare, adding ' to both variables, adding ' to only the SET variable, using springf, using a formatted string where both values are inserted into %s, nothing works. I've spent the whole night on this and right now I just feel like crying.

This query works when I hard-code the values or paste the dump directly in phpmyadmin.

$trans = strval($_POST["trans"]);
$status = strval($_POST["status"]);

global $wpdb;
$wpdb->show_errors;
$query = "UPDATE donations SET donation_status='".mysql_real_escape_string($status)."' WHERE donation_reference = '".mysql_real_escape_string($trans)."'";

$result = $wpdb->query($query);

$wpdb->print_error;

exit( var_dump( $wpdb->last_query ) );

Another funny thing is the query works when I replace the first two lines with hard-coded values, like:

$trans = "12345678";
$status = "Transaction Successful";

But as long as the values are read from the $_POST variables, the query doesn't work.

I'm using PHP Version 5.3.28 and MySQL 5.5.40.

Please help!

  • 写回答

2条回答 默认 最新

  • doufei2328 2014-11-14 07:40
    关注

    First of all, make sure $_POST contains what you expect.

    Then for added security, use wpdb::update() method instead of wpdb::query()

    $trans = strval($_POST["trans"]);
    $status = strval($_POST["status"]);
    
    global $wpdb;
    $wpdb->show_errors;
    $wdpb->update(
        'donations',
        array( 'dontion_status' => $status ),
        array( 'donation_reference' => $trans ),
    );
    $wpdb->print_error;
    
    exit( var_dump( $wpdb->last_query ) );
    
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值