Php SQL查询中的printf或类似内容?

Php SQL查询中的printf或类似内容?,php,mysql,printf,Php,Mysql,Printf,我看到了一个类似的问题,但还没有答案 我有以下SQL查询: $sql = mysql_query("SELECT * FROM patient_db_0004 WHERE MATCH ( Name, id_number ) AGAINST ('$term' IN BOOLEAN MODE);"); 在patient_db_0004所在的位置,我想在我的SQL查询中打印一个自动递增索引,如“0001000200030004” printf("%04s",$i); 打印查询中的值 要使用而不是p

我看到了一个类似的问题,但还没有答案

我有以下SQL查询:

$sql = mysql_query("SELECT * FROM patient_db_0004 WHERE MATCH ( Name, id_number ) AGAINST ('$term' IN BOOLEAN MODE);");
在patient_db_0004所在的位置,我想在我的SQL查询中打印一个自动递增索引,如“0001000200030004”

printf("%04s",$i);
打印查询中的值

要使用而不是printf(它将值打印到字符串):

但是,请记住,这不会阻止SQL注入。您仍然必须在用户提供的数据上使用mysql\u real\u escape\u字符串。

在mysql上,您可以使用。例如,您可能想尝试一下

您可以为数据库引擎搜索类似的函数

样本输出:

mysql> SELECT LPAD(`id` , 4, '0') FROM `patient_db_0004` LIMIT 10;
+---------------------+
| LPAD(`id` , 4, '0') |
+---------------------+
| 0001                |
| 0002                |
| 0003                |
| 0004                |
| 0005                |
| 0006                |
| 0007                |
| 0008                |
| 0009                |
| 0010                |
+---------------------+
10 rows in set (0.00 sec)
(在上面的示例中,我有一个名为
id
的自动增量字段)

编辑:根据您的评论,它似乎就是您想要的:

<?php
$term = 'foobar';
for($i=1; $i<5; $i++)
{
    echo(sprintf("SELECT * FROM patient_db_%04d WHERE MATCH (Name, id_number) AGAINST ('$term' IN BOOLEAN MODE);\n", $i));
}
?>
如果我理解正确,您正在尝试运行这些查询。所以你可以在这里考虑的是:

<?php
// ...
for($i=1; $i<5; $i++)
{
    $query = sprintf("SELECT * FROM patient_db_%04d WHERE MATCH (Name, id_number) AGAINST ('$term' IN BOOLEAN MODE);\n", $i);
    $sql = mysql_query();
}
?>

这样我就可以自动从“patient\u db\u 0004”、patient\u db\u 0005、patient\u db\u 0006中进行选择?也许我误解了你的问题。我已经编辑了我的答案。希望有帮助。
<?php
$term = 'foobar';
for($i=1; $i<5; $i++)
{
    echo(sprintf("SELECT * FROM patient_db_%04d WHERE MATCH (Name, id_number) AGAINST ('$term' IN BOOLEAN MODE);\n", $i));
}
?>
SELECT * FROM patient_db_0001 WHERE MATCH (Name, id_number) AGAINST ('foobar' IN BOOLEAN MODE);
SELECT * FROM patient_db_0002 WHERE MATCH (Name, id_number) AGAINST ('foobar' IN BOOLEAN MODE);
SELECT * FROM patient_db_0003 WHERE MATCH (Name, id_number) AGAINST ('foobar' IN BOOLEAN MODE);
SELECT * FROM patient_db_0004 WHERE MATCH (Name, id_number) AGAINST ('foobar' IN BOOLEAN MODE);
<?php
// ...
for($i=1; $i<5; $i++)
{
    $query = sprintf("SELECT * FROM patient_db_%04d WHERE MATCH (Name, id_number) AGAINST ('$term' IN BOOLEAN MODE);\n", $i);
    $sql = mysql_query();
}
?>