使用占位符将数据插入到表中

时间:2014-09-13 作者:Richard Jones

我正试图将数据插入表中,出现错误,我已尝试传递数据,但似乎无法使其正常工作,请您帮助我找出我做错了什么,请。。。

以下是我在验证完成后执行的代码:

                   $sql = \'INSERT INTO `tablename` (`file`,`afile`,`type`,`keyword`,`location`,`numbl`,`userul`,`uldate`) values (%s,%s,%s,%s,%s,%s,%s,%d) "\'. $_REQUEST[\'filename\'] . \'", "\' . $url . \'", "\' . $_REQUEST[\'filetype\'] . \'", "\' . $_REQUEST[\'filekeyword\'] . \'", "\' . $_REQUEST[\'filelocation\'] . \'", "\' . $_REQUEST[\'filenumbl\'] . \'", "\' . $user_login . \'", "\' . time() . \'"\';
                    $wpdb->query($sql);
                    $_tbInsertId = $wpdb->insert_id;
它不起作用。我添加了show errors代码,上面写着:

  WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'%s,%s,%s,%s,%s,%s,%s,%d) "LK-Contractor-NOGglRev-16Ld-082214.csv"\' at line 1]
我甚至试着在值的结尾处加一个逗号。。。但同样的错误。我在所有字段周围添加了“引号”,但这也无法修复它。

你知道是什么原因吗?谢谢Richard

2 个回复
SO网友:Richard Jones

我在抄本里找到了答案。我只是使用了它的代码并对其进行了修改,这个代码:

  $wpdb->query( $wpdb->prepare( 
"
    INSERT INTO $wpdb->postmeta
    ( post_id, meta_key, meta_value )
    VALUES ( %d, %s, %s )
", 
    10, 
$metakey, 
$metavalue 
) );
所以它现在起作用了。

SO网友:Ruchi B

如果仍面临此问题,请尝试打印查询

echo $sql = \'INSERT INTO `tablename` (`file`,`afile`,`type`,`keyword`,`location`,`numbl`,`userul`,`uldate`) values ("\'. $_REQUEST[\'filename\'] . \'", "\' . $url . \'", "\' . $_REQUEST[\'filetype\'] . \'", "\' . $_REQUEST[\'filekeyword\'] . \'", "\' . $_REQUEST[\'filelocation\'] . \'", "\' . $_REQUEST[\'filenumbl\'] . \'", "\' . $user_login . \'", "\' . time() . \'"\';


// $wpdb->query($sql);
// $_tbInsertId = $wpdb->insert_id;
现在,在phpmyadmin中直接运行打印的查询,以检查是否缺少任何值

希望能有所帮助

结束

相关推荐

如何执行一个SQL查询来排除表wp_Terms中除自定义分类术语之外的所有术语?

问题摘要:我正在尝试编写一个只返回自定义分类术语的SQL查询,但该表(wp\\u terms)包含所有术语,甚至包括我不需要的术语(例如类别术语和nav\\u菜单术语)。This is my present query:function myajax_inputtitleSubmit_func() { global $wpdb; global $customTerms; $acInput = $_GET[\'input\']; $mydb = new wpdb(\