PDO插入和更新

时间:2013-07-09 13:11:46

标签: mysql 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没有插入数据库。

-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'] );

也许我在这里发布mutch问题但我知道但我想学习它。

~Kev(坏英语=抱歉)

1 个答案:

答案 0 :(得分:0)

需要执行预准备语句才能实际访问数据库。

你应该调整它看起来更像这样:

$sth = $db->prepare(
  'INSERT INTO track (`rsname`, `overallranknow`, `overalllevelnow`, `overallxpnow` )' .
  'VALUES (:name, :Overalln, :Overall1, :Overall2) '. 
  'ON DUPLICATE KEY UPDATE ' .
    "rsname = :name"  .
    "overallranknow = :Overalln" .
    "overalllevelnow = :Overall1" .
    "overallxpnow = :Overall2" 
);

$sth->execute(array('name' => $name, 'Overalln' => $Overalln, 'Overall1' => $Overall[1], 'Overall2' => $Overall[2]));