Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO如何进行此查询?_Php_Sql_Pdo_Phpmyadmin - Fatal编程技术网

Php PDO如何进行此查询?

Php PDO如何进行此查询?,php,sql,pdo,phpmyadmin,Php,Sql,Pdo,Phpmyadmin,$get data from csv函数的值是多少,因此我们无法知道它有多少。 我自己尝试,PDO不能做这个查询。我应该做什么查询 一个占位符无法完成此操作。仅在允许使用普通表达式的情况下才允许使用占位符,并且值列表不是单个表达式 因此,您需要使用字符串插值/串联,如Gautam3164的答案所示,或者使用一个循环,每次插入一行,例如 $what = "(999,'string','string2'),(21,'aaaa','bbbbb'),(22,'ccccc','ddddd')"; incl

$get data from csv函数的值是多少,因此我们无法知道它有多少。
我自己尝试,PDO不能做这个查询。我应该做什么查询

一个占位符无法完成此操作。仅在允许使用普通表达式的情况下才允许使用占位符,并且值列表不是单个表达式

因此,您需要使用字符串插值/串联,如Gautam3164的答案所示,或者使用一个循环,每次插入一行,例如

$what = "(999,'string','string2'),(21,'aaaa','bbbbb'),(22,'ccccc','ddddd')";
include("../connect/pdoconnect.php");
try {

$sql = $db->prepare("INSERT INTO `bd_fortest` (`user_ID`, `picturename`, `picturepath`) VALUE :what");
$sql->execute(array(":what"=>$what));


}
catch(PDOException $e) {  
    echo "\nPDO::errorInfo():\n";
    print_r($db->errorInfo());
}

如果使用字符串连接,则会失去参数化语句的保护。您需要确保所有字符串都经过适当的消毒或转义。

占位符用于插入值,因此可以将它们与代码正确分开。如果您使用它们插入代码,PDO将不会将其作为代码处理,因为这正是它应该做的。如果您从某个数组生成$what,那么PDO准备的语句应该是该数组循环的目标。错误已修复。谢谢大家:)谢谢大家。我将尝试:)@Batmar+1为您提供…很好的Anshmm我尝试了,它显示了致命错误:对非对象调用成员函数prepare()。这意味着您没有正确设置
$db
,这是一个完全不同的问题。
$whats = array(array('userid' => 999, 'picturename' => 'string', 'picturepath' => 'string2'),
               array('userid' => 21, 'picturename' => 'aaaa', 'picturepath' => 'bbbbb'),
               array('userid' => 22, 'picturename' => 'ccccc', 'picturepath' => 'ddddd')
              );
$sql = $db->prepare("INSERT INTO `bd_fortest` (`user_ID`, `picturename`, `picturepath`) VALUES (:userid, :picturename, :picturepath)");
foreach ($whats as $what) {
    $sql->execute($what);
}