1

因此,在我最近的主题之后,我了解了 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. ' " 
);

代码就像现在什么都不做

- 它没有插入到数据库中。

- 它没有更新到数据库中。

我的数据库连接文件也是这个

<?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(英语不好=抱歉)

4

1 回答 1

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]));
于 2013-07-09T15:18:29.723 回答