47

私は次のように書いています

$name="Kumkum";
$email="kumkum@gmail.com";
$phone="3456734567";
$country="India";
$course="Database";
$message="hello i want to read db";
$now = new DateTime();
$datesent=$now->format('Y-m-d H:i:s');    
global $wpdb;
$sql = $wpdb->prepare(
 "INSERT INTO `wp_submitted_form`      (`name`,`email`,`phone`,`country`,`course`,`message`,`datesent`) values ("
 $name, $email, $phone, $country, $course, $message, $datesent. ')")';

$wpdb->query($sql);

動作していません...エラーが発生します...修正を手伝ってください。

4

8 に答える 8

124

を使用し$wpdb->insert()ます。

$wpdb->insert('wp_submitted_form', array(
    'name' => 'Kumkum',
    'email' => 'kumkum@gmail.com',
    'phone' => '3456734567', // ... and so on
));

@mastrianni からの追加:

$wpdb->insert$wpdb->queryでクエリをサニタイズする必要があるのとは異なり、 はデータをサニタイズします$wpdb->prepare。この 2 つの違いは、$wpdb->query独自の SQL ステートメントを記述できることです。ここで$wpdb->insertは、配列を受け入れ、サニタイズ/SQL を処理します。

于 2013-08-07T06:58:21.873 に答える
23

使用するだけwpdb->insert(tablename, coloumn, format)でwpはそのクエリを準備します

<?php
global $wpdb;
$wpdb->insert("wp_submitted_form", array(
   "name" => $name,
   "email" => $email,
   "phone" => $phone,
   "country" => $country,
   "course" => $course,
   "message" => $message,
   "datesent" => $now ,
));
?>
于 2013-08-07T07:26:30.543 に答える
8

これを試して

私は最近$wpdb->prepare HEREについて学び、私たちの Free Class Booking プラグインに追加しました。このプラグインは wordpress.org で承認されており、間もなく公開されます。

global $wpdb;
$tablename = $wpdb->prefix . "submitted_form";

$name     = "Kumkum"; //string value use: %s
$email    = "kumkum@gmail.com"; //string value use: %s
$phone    = "3456734567"; //numeric value use: %d
$country  = "India"; //string value use: %s
$course   = "Database"; //string value use: %s
$message  = "hello i want to read db"; //string value use: %s
$now      = new DateTime(); //string value use: %s
$datesent = $now->format('Y-m-d H:i:s'); //string value use: %s

$sql = $wpdb->prepare("INSERT INTO `$tablename` (`name`, `email`, `phone`, `country`, `course`, `message`, `datesent`) values (%s, %s, %d, %s, %s, %s, %s)", $name, $email, $phone, $country, $course, $message, $datesent);

$wpdb->query($sql);

ありがとう -フランク

于 2014-05-03T12:18:42.883 に答える
5

quotesきちんと確認する必要がありますが、

$sql = $wpdb->prepare(
    "INSERT INTO `wp_submitted_form`      
       (`name`,`email`,`phone`,`country`,`course`,`message`,`datesent`) 
 values ($name, $email, $phone, $country, $course, $message, $datesent)");
$wpdb->query($sql);

または、次のように使用できます。

$sql = "INSERT INTO `wp_submitted_form`
          (`name`,`email`,`phone`,`country`,`course`,`message`,`datesent`) 
   values ($name, $email, $phone, $country, $course, $message, $datesent)";

$wpdb->query($sql);

http://codex.wordpress.org/Class_Reference/wpdbを読む

于 2013-08-07T06:55:41.157 に答える
1
global $wpdb;
$insert = $wpdb->query("INSERT INTO `front-post`(`id`, `content`) VALUES ('$id', '$content')");
于 2016-05-03T10:12:44.607 に答える
-7
$wpdb->query("insert into ".$table_name." (name, email, country, country, course, message, datesent) values ('$name','$email', '$phone', '$country', '$course', '$message', )");
于 2014-12-01T11:32:28.740 に答える