登録データをデータベースに送信するPHPでログイン/登録コードを作成しようとしています。私はexecute()メソッドを呼び出しますが、何らかの理由で動作しません。このメソッドがデータベースにSQL文を送信すると、何が起こるはずですか?私は何を見落としていますか?エラーメッセージを取得またはそうPDO::ERRMODE_EXCEPTION
からPDO optionPDO::ATTR_ERRMODE
を設定することが望ましいPHP PDO :: execute文は実行されません
答えて
使用PDO::errorInfo()としての機能と呼ばれている
public function query($sql, $params= array()) {
/* query takes 2 paramaters, $sql which is a prepared sql statement, and params, which holds the value of the fields to be inserted into db */
$this->_error = false; // field to determine if there is an error
$this->_query = $this->_pdo->prepare($sql); // $_query is another field holding the query value
$x=1;
if(count($params)){ //count is a function to determine if the paramater has a value
foreach($params as $param) {
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute($sql)){
$this->_result = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount(); // this is the block that is desired to be executed
} else {
$this->_error = true; // This is the block that is being executed
}
return $this;
}
Iは、データベースへの接続問題がない検証、およびクエリ内の他の方法() PDOはエラーが発生した場合に例外をスローします。
OK、私はそれを走らせましたが、私は言語に慣れていないので、これが意味することを実際に理解していません - > PDO :: errorInfo():Array([0] => 21S01 [1] => 1136 [ 2] =>列の数が行1の値の数と一致しない – tornadoriley
これは、SQL文で使用している量をカバーするには、バインド値が多すぎるか不足していることを意味します。 – Rasclatt
pdo実行パラメータはクエリではない可能性があります。実行時には、バインド配列のみが許可されます。試してみてください:あなたが手動でクエリを試みなければならないすべての
public function query($sql, $params= array()) {
/* query takes 2 paramaters, $sql which is a prepared sql statement, and params, which holds the value of the fields to be inserted into db */
$this->_error = false; // field to determine if there is an error
$this->_query = $this->_pdo->prepare($sql); // $_query is another field holding the query value
$x=1;
if(count($params)){ //count is a function to determine if the paramater has a value
foreach($params as $param) {
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()){ // changed execute($sql) to execute()
$this->_result = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount(); // this is the block that is desired to be executed
} else {
$this->_error = true; // This is the block that is being executed
}
return $this;
}
まず、
よう$db = new PDO("mysql:host=somehost;dbname=somedb","user","pass");
$stmt = $db->prepare("insert into table (a,b,c) values('1','2','3')");
$stmt ->execute();
これが成功を取得している場合は、あなたが結合データを試してみてください。 私はいつもエラーから抜け出す方法を得ます。
- 1. PHP PDO PDOStatement-> execute()
- 2. PHP PDO:文字は表示されません
- 3. PDO :: queryとPDOStatement :: execute(PHPとMySQL)
- 4. PDO :: execute()でphpを使用してデータベースに挿入できません
- 5. PHP executeはエラーを返しませんが、データベースに行が追加されていません
- 6. PHP PDO Firebirdの文字セットは決して変更されません。
- 7. PostgreSQLエラー:SELECT ... INTOのEXECUTEが実装されていません
- 8. フォームはデータベースに送信されませんPHP PDO
- 9. PDOは何も返されません。
- 10. EXECUTE IMMEDIATEのSQL文は実行時に解析されますか?
- 11. PDO PHPヘブライは動作しません
- 12. Azure:PHP SQL Webjobが機能しません。なぜそれはクエリ "execute()"文にスローされますか?
- 13. オブジェクト関数はPHPでは実行されません
- 14. PHP MySQL PDO :: execは、マルチコマンドスクリプトのエラーを発生させません。
- 15. HTMLDOCはPHPから実行されません
- 16. 644以外のPHPは実行されませんか?
- 17. PHP:2回目のループは実行されませんか?
- 18. PHPファイルはHTMLから実行されません
- 19. PHPスクリプトはlaravel cronによって実行されません
- 20. テストコード上のPhP更新コードは実行されません
- 21. PHPはHTMLの前に実行されません
- 22. PHPスクリプトはAndroidから実行されていません
- 23. php execコマンドは実行されません
- 24. なぜこのPHPコードは実行されませんか?
- 25. PHP PhantomJS:JSは実行されませんか?
- 26. else文のロジックが実行されていません
- 27. SQL文はC#では実行されません。
- 28. PHPのコード行が実行されていません
- 29. mysql PDO SELECTを実行しても、エラーは出力されず出力されません。どうして?
- 30. pdoは常にクエリを実行していません
質問を明確にするために質問を編集してください。デバッグの助けを求める質問(**はなぜこのコードが動作しないのですか?**)は、質問自体に*必要な動作、*特定の問題またはエラー*、* *それを再現するのに必要な最短コード* *。 **明確な問題文**のない質問は他の読者には役に立たない。参照:[最小限で完全で検証可能な例の作成方法](http://stackoverflow.com/help/mcve) –
「それはうまくいかない」ことについて詳しく説明できますか? –
なぜその関数がすでにそれ自身の上に存在するときに、queryと呼ばれる関数を作成していますか? –