Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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中的所有其他内容都正常工作时,无法执行PDO语句(更新MySQL表)_Php_Mysql_Pdo - Fatal编程技术网

Php 当PDO中的所有其他内容都正常工作时,无法执行PDO语句(更新MySQL表)

Php 当PDO中的所有其他内容都正常工作时,无法执行PDO语句(更新MySQL表),php,mysql,pdo,Php,Mysql,Pdo,这是我关于StackOverflow的第一个问题,你能解释一下我做错了什么吗:我有这段代码(如下),但出于某种原因,我已经尝试过查看和调试,我看不出为什么PDO没有完成下面的请求,插入和回显的工作方式与此相同,有人能告诉我发生了什么吗?我沮丧地把头发拔了出来 $q = "UPDATE content SET urlid=:url, title=:title, description=:desc, keywords=:key WHERE urlid=:urlid"; $qu

这是我关于StackOverflow的第一个问题,你能解释一下我做错了什么吗:我有这段代码(如下),但出于某种原因,我已经尝试过查看和调试,我看不出为什么PDO没有完成下面的请求,插入和回显的工作方式与此相同,有人能告诉我发生了什么吗?我沮丧地把头发拔了出来

    $q = "UPDATE content SET urlid=:url, title=:title, description=:desc, keywords=:key     WHERE urlid=:urlid";
    $query = $pdo->prepare($q);
    $query->execute(array(
        ':url'     => $urlid,
        ':title'   => $title,
        ':desc'    => $desc,
        ':key'     => $key,
        ':contloc' => $contloc,
        ':userid'  => $uid,
        ':urlid'   => $urlid
        //':content' => $content
    ));
我在Apache错误日志中收到以下警告:

[Thu Jul 12 21:07:13 2012][error][client 99.230.122.54]PHP警告:PDOStatement::execute():SQLSTATE[HY093]:无效参数编号:绑定变量的数量与第31行/Library/Server/Web/Data/Sites/Default/addto2.PHP中的令牌数量不匹配,请参考:
http://localhost/sample/4fff30aea1f20


PDO抱怨,因为您传递的参数比查询中使用的参数多。或者您想在查询中包含更多参数,但您忘记了?

我传递了太多参数,因为我以前使用的代码几乎没有修改,但这次我使用的代码有点不同:对于一个新手,它很大,我为此沮丧了大约30分钟!嗯,问题解决了,我知道我会越来越多地使用StackOverflow。也许你应该在btw上打开错误报告,这会让你的生活更轻松,因为你不必每次都检查日志。我不知道怎么做。。。你能告诉我吗?我想我可以编辑httpd.conf,但我不知道该编辑什么。你必须编辑你的php.ini(位于php文件夹中)并添加行:error_reporting=E_ALL | E_strict谢谢@redelman431的帮助,但是。。。这对我不起作用。我在这里找到了答案。哈哈,是的,只有正确数量的参数是很重要的
$q = "UPDATE content SET urlid=:url, title=:title, description=:desc, keywords=:key WHERE urlid=:urlid";
$query = $pdo->prepare($q);
$query->execute(array(
    ':url'     => $urlid,
    ':title'   => $title,
    ':desc'    => $desc,
    ':key'     => $key,
    ':urlid'   => $urlid
));