所以在我最近的主题之后我了解了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(坏英语=抱歉)
答案 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]));