मुझे पीडीओ तैयार कथन और पंक्तियों के साथ समस्या है जिसमें प्रभावित पंक्तियों की गलत संख्या लौट रही है।पीडीओ पंक्ति गणना प्रभावित पंक्तियों की सही संख्या वापस नहीं कर रही
create table test (
boolean var1;
);
तो मैं निम्नलिखित परीक्षण कोड है:
$sth = $pdo->prepare("INSERT into test (var1) VALUES (:val)");
$sth->execute(array(':val' => true));
echo $sth->rowCount();
अपेक्षा के अनुरूप कौन देता है: 1 पंक्तियों प्रभावित
और जब मैं डालने
मैं का एक साधारण परीक्षण डेटाबेस है एक अमान्य प्रकार और सम्मिलन विफल रहता है:
$sth = $pdo->prepare("INSERT into test (var1) VALUES (:val)");
$sth->execute(array(':val' => 20));
echo $sth->rowCount();
कौन सा अपेक्षा के अनुरूप रिटर्न: 0 पंक्तियों
प्रभावित हालांकि, जब मैं अनेक निवेशन है - में
$sth = $pdo->prepare("INSERT into test (var1) VALUES (:val)");
$sth->execute(array(':val' => true));
echo $sth->rowCount() . ", ";
$sth->execute(array(':val' => 20));
echo $sth->rowCount();
परिणाम: 1, 1
और अगर मैं निष्पादन आदेश फ्लिप मैं : 0, 1
पंक्ति गणना() - सफल पंक्तियों को सफल होने के बाद असफल पंक्ति पर शून्य पर सेट नहीं किया जा रहा है एसएस कथन?
मैं php 5.3.6-13 और Postgresql 9.1
बस पीडीओ के लिए अपवाद को चालू करना और का एक बेहतर रास्ता मिल ऐसे मामलों को संभालना – zerkms
यह मुझे समझ में आता है क्योंकि आपने उसी पीडीओएसएटमेंट का पुन: उपयोग किया था। यदि आपको प्रत्येक कथन के लिए एक अलग पंक्ति गणना की आवश्यकता है, तो दूसरा कथन तैयार करें। – Ozzy