我有点问题。我是mysql的新手,我正在创建一些基本的猫数据库。我通过该代码向数据库添加了100个职位:
$result_set = $pdo->prepare("INSERT INTO koty2 (name, age, breed, author, tag, image) VALUES (:name, :age, :breed, :author, :tag, :image)");
$result_set->execute(array(
':name' => $name,
':age' => $age,
':breed' => $breed,
':author' => $author,
':tag' => $tag,
':image' => $image
));
for ($i=0; $i<100; $i++) {
$result_set->execute(array(
':name' => $name,
':age' => $age,
':breed' => $breed,
':author' => $author,
':tag' => $tag,
':image' => $image
));
我尝试了多种方法将$ name添加到数据库中,行的ID自动递增 - 因此它将是"Name+ID"
。到目前为止我失败了。有人能告诉我怎么做吗?
谢谢。
答案 0 :(得分:1)
一个解决方法是,您可以先插入要插入的数据,获取最后插入的ID,然后只需通过连接名称和ID来更新名称。见下面的代码:
// insert first
$result_set = $pdo->prepare("INSERT INTO koty2 (name, age, breed, author, tag, image) VALUES (:name, :age, :breed, :author, :tag, :image)");
$result_set->execute(array(
':name' => $name,
':age' => $age,
':breed' => $breed,
':author' => $author,
':tag' => $tag,
':image' => $image
));
// get the inserted ID
$last_ins_id = $pdo->lastInsertId();
// update the inserted name
$update_row = $pdo->prepare("UPDATE koty2 SET name = :name WHERE ID = :id");
$update_row->execute(array(
':name' => $name . $last_ins_id,
':id' => $last_ins_id
));
我不确定这是否是最好的解决方案,但这个逻辑仍然可以完成工作
答案 1 :(得分:0)
如果您想在每次插入新Cat(xD)时获取插入的自动递增ID,您可以使用:
$pdo->lastInsertId();
http://php.net/manual/en/pdo.lastinsertid.php
这将回显整个列&#34; $ Name $ CatID&#34;做你想做的事:
$stmt = $pdo->query("SELECT name, catID FROM koty2");
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
print "Name: <p>{$row[0] $row[1]}</p>";
}