Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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 mysql中使用pdo的参数编号问题无效_Php_Mysql_Pdo - Fatal编程技术网

Php mysql中使用pdo的参数编号问题无效

Php mysql中使用pdo的参数编号问题无效,php,mysql,pdo,Php,Mysql,Pdo,我最近开始使用pdo进行mysql查询,但我发现以下错误 警告:PDOStatement::execute():SQLSTATE[HY093]:无效参数编号:未定义参数 我的密码是 $conquery = $this->db->prepare("SELECT questions.quid,answers.catid,answers.ansid FROM questions,answers where questions.qtype = ? and an

我最近开始使用pdo进行mysql查询,但我发现以下错误

警告:PDOStatement::execute():SQLSTATE[HY093]:无效参数编号:未定义参数

我的密码是

$conquery = $this->db->prepare("SELECT questions.quid,answers.catid,answers.ansid  
            FROM questions,answers where  questions.qtype  = ? and answers.userid = ? and (questions.quid = answers.quid)");

$conquery->execute(array('questions.qtype' => 'concern','answers.userid' =>$_SESSION['user_id'])); 

您的参数未在准备好的语句中命名(您使用的是“?”),您应该尝试以下操作:

$conquery->execute(array('concern',$_SESSION['user_id'])); 

您误解了参数的工作原理。 有两种方法可以使用参数。这些方法不能同时使用

索引参数: 使用索引参数时,在查询中使用
。 然后使用一个简单的索引数组绑定参数。在您的cas中,您可以编写:

$conquery = $this->db->prepare("SELECT questions.quid,answers.catid,answers.ansid  
        FROM questions,answers where  questions.qtype  = ? and answers.userid = ? and (questions.quid = answers.quid)");

 $conquery->execute(array( 'concern',$_SESSION['user_id']))
命名参数: 使用命名参数时,在参数名称(等号右侧)前面加上一个
,然后使用命名数组,在您的情况下,它将是:

$conquery = $this->db->prepare("SELECT questions.quid,answers.catid,answers.ansid  
        FROM questions,answers where  questions.qtype  = :qtype and answers.userid = :userid and (questions.quid = answers.quid)");

 $conquery->execute(array('qtype' => 'concern','userid' =>$_SESSION['user_id']))

非常感谢您的帮助。我比较了artragis描述的两种方法。