我希望我的数据库中的列具有默认值,该值对于每一行都是相同的,但是最后一个字符应该是该行的主键。
这可以使用PHP / MySQL实现吗?
例如(我希望链接列具有默认值)
+----+----------------------------+
| ID | Link |
+----+----------------------------+
| 1 | edit_item.php?id=1 |
| 2 | edit_item.php?id=2 |
| 3 | edit_item.php?id=3 |
+----+----------------------------+
非常感谢您的帮助!
答案 0 :(得分:1)
在插入时,您需要插入并更新您的记录。
首先插入你的记录,然后获取最后插入的id,然后更新记录,例如:
<?php
$sql = "INSERT INTO TableName(Link) VALUES ('edit_item.php')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
} else {
$id = mysql_insert_id();
mysqli_query($con,"UPDATE TableName SET Link='edit_item.php?id=".$id."' WHERE id=$id);
}
答案 1 :(得分:-1)
您无法动态设置默认设置,但绝对可以使用 printf()进行某种替换,例如:
架构:
CREATE TABLE links (
id INT PRIMARY KEY AUTO_INCREMENT,
link TEXT DEFAULT "edit_item.php?id=%d"
);
然后在PHP中,使用 printf()替换%d和ID,
<?php
// Let's assume it's an array with this format:
// ['id' => 1, 'link' => 'edit_item.php?id=%d']
$row = yourSelectCommandThatReturnsAnObject();
// In this case, $row['id'] will replace the %d.
$link = printf($row['link'], $row['id']);
您可以查看the PHP docs for printf()了解更多信息。