2017-08-16 15 views
1

mysqli_stmt-objectの準備文を取得するにはどうすればよいですか?MYSQLエラー準備済みの文を取得

mysql-statementの実行中にエラーが発生した場合、私はそのステートメントを返したいと思います。

$id = "89c483c8"; 
$query = "SELECT * FROM database WHERE id = ?"; 
if (!($stmt = $database->prepare($query) { ... } 
else { 
    $stmt->bind_param("s", $id); 
    if (!$stmt->execute()) 
     return $stmt->get_statement; //doesn't exist 
} 

"$ stmt-> get_statement"はもちろん動作しません。だから、どのように完全なクエリを取得するのですか?この例では:

"SELECT * FROM database WHERE id = 89c483c8" 
+0

あなたが進値を引用する必要があります。 – EvgenyKolyakov

+3

このような機会はありません。ただ 'error'プロパティを使います。同様:https://stackoverflow.com/questions/2691707/is-there-any-way-to-print-the-actual-query-that-mysqli-execute-makes –

答えて

1

これは、SQLエラーをキャッチするための最良の方法である:

try { 
    $res = $mysqli_instance->query($query); 
}catch (mysqli_sql_exception $e) { 
    print "Error Code <br>".$e->getCode(); 
    print "Error Message <br>".$e->getMessage(); 
    print "Strack Trace <br>".nl2br($e->getTraceAsString()); 
} 

または最も簡単な方法:

echo $stmt->error 

http://php.net/manual/en/mysqli.error.php

関連する問題