使用PHP printf生成sql查询
我试图用使用PHP printf生成sql查询,php,mysql,sql,printf,Php,Mysql,Sql,Printf,我试图用printf生成一个要在MySQL上执行的查询: $query = printf("INSERT INTO author VALUES (null,'%s','%s','%s',null,null,null,null,null)", $command['pseudonym'],$command['name'],$command['surname']); $result = $connection->query($query); 但结果是这个奇怪的错误: INSERT I
printf
生成一个要在MySQL上执行的查询:
$query = printf("INSERT INTO author VALUES (null,'%s','%s','%s',null,null,null,null,null)",
$command['pseudonym'],$command['name'],$command['surname']);
$result = $connection->query($query);
但结果是这个奇怪的错误:
INSERT INTO author VALUES (null,'pseudo','nome','cognome',null,null,null,null,null)
Database access failed: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near '83' at line 1
生成的查询在PhpMyadmin中工作。
我还尝试了一个没有printf
的代码版本,它可以工作:
$pseudo = $command['pseudonym'];
$name = $command['name'];
$surname = $command['surname'];
$query = "INSERT INTO author VALUES (null,'$pseudo','$name','$surname',null,null,null,null,null)";
使用printf
的版本有什么问题?而不是printf()
使用:
不要使用printf()
您正在查找
sprintf
,因为您想存储查询字符串以供以后使用。您正在查找sprintf
,因为您想存储查询字符串以供以后使用。此处使用sprintf是因为
sprintf具有原始printf的所有格式化功能,这意味着您可以做的不仅仅是在字符串中插入变量值
例如,指定数字格式(十六进制、十进制、八进制)、小数位数、填充等。用谷歌搜索printf,你会发现很多例子。关于printf的维基百科文章应该让您开始学习。这里使用sprintf是因为 sprintf具有原始printf的所有格式化功能,这意味着您可以做的不仅仅是在字符串中插入变量值 例如,指定数字格式(十六进制、十进制、八进制)、小数位数、填充等。用谷歌搜索printf,你会发现很多例子。关于printf的维基百科文章应该让您开始学习。我建议您使用。PDO有一些命名参数(look),可以满足您的需要(另外它还负责转义和消毒)我建议您使用。PDO具有满足您需要的命名参数(look)(加上它负责转义和清理)要在数据库中将“null”视为空值,是否不必为“”
$query = sprintf("INSERT INTO author VALUES ('','%s','%s','%s','','','','','')",
$command['pseudonym'],$command['name'],$command['surname']);
当然可能是错误的…要在数据库中将“null”视为空值,不是必须是“”吗
$query = sprintf("INSERT INTO author VALUES ('','%s','%s','%s','','','','','')",
$command['pseudonym'],$command['name'],$command['surname']);
当然可能是错的…哦,我的上帝!这太尴尬了。我从几天前开始使用PHP,所以我不知道printf和sprintf的两个版本:我的天哪!这太尴尬了。我从几天开始使用PHP,所以我不知道printf和sprintf的两个版本:我从几天开始使用PHP,我在一本非常基础的书上学习了它:Robin Nixon的《学习PHP、MySQL、JavaScript、CSS和HTML5第三版》。它没有提到PDO。我一定要看一看。谢谢,我从几天前开始使用PHP,我在一本非常基础的书中学习了它:Robin Nixon的《学习PHP、MySQL、JavaScript、CSS和HTML5第三版》。它没有提到PDO。我一定要看一看。非常感谢。