Итак, после моей недавней темы я узнал о PDO. Я стараюсь изо всех сил понять это, и это работает. Но теперь проблема в том, что мой новый скрипт pdo не будет вставлять и обновлять, если он существует в базе данных. Теперь я спрашиваю об этом здесь, потому что я стартер в PDO, и я стараюсь изо всех сил.Вставка и обновление PDO
Теперь это код, который я использую.
$db->prepare(
'INSERT INTO track (`rsname`, `overallranknow`, `overalllevelnow`, `overallxpnow`)' .
'VALUES (' .$name. '. ' .$Overalln. ', ' .$Overall[1]. ', ' .$Overall2. ') '.
'ON DUPLICATE KEY UPDATE ' .
"rsname = ' .$name. '" .
"overallranknow = ' .$Overalln. ' " .
"overalllevelnow = ' .$Overall[1].' " .
"overallxpnow = ' .$Overall2. ' "
);
код, как ничего не делать прямо сейчас
-это не вставляя в базу данных.
-it не обновляется в базе данных.
Кроме того, моя база данных подключения файла это
<?php
$config['db'] = array(
'host' => 'localhost',
'username' => '',
'password' => '',
'dbname' => ''
);
$db = new PDO('mysql:host=' . $config['db'] ['host'] . ';dbname=' . $config['db'] ['dbname'], $config['db'] ['username'], $config['db'] ['password']);
Может быть, я отправляю чепчик вопрос здесь и я знаю, но я хочу, чтобы узнать его.
~ Кев (плохой английский = извините)
Это здорово, что вы используете PDO, но вы не можете ** ** написать SQL-код таким образом, не внося серьезные [ошибки инъекций SQL] (http://bobby-tables.com/). Ваш запрос должен выглядеть так: «INSERT INTO track (...) VALUES (: name,: Overalln,: Overall1, Overall2) ...», а затем вы связываете значения с этими заполнителями во время вызова 'execute':' execute (array ('name' => $ name, 'Overalln' => $ Overalln, 'Overall1' => $ Общий [1], 'Overall2' => $ Overall2)) '. – tadman
@tadman Спасибо за ваш комментарий! Но что значит «выполнить»? может у вас, возможно, поместить его в код, который я разместил? – Kev30
Также мне нравится обновлять таблицу, если она существует, это возможно? – Kev30