मैं पैरामीटरयुक्त इनपुट का उपयोग करने के लिए कुछ हार्ड-कोड किए गए प्रश्नों को स्विच करने की कोशिश कर रहा हूं, लेकिन मैंने एक समस्या में भाग लिया है: आप पैरामीटरयुक्त थोक आवेषण के लिए इनपुट कैसे प्रारूपित करते हैं?थोक पैरामीटरयुक्त प्रविष्टियां
वर्तमान में, कोड इस तरह दिखता है:
$sql = 'INSERT INTO my_table (field1, field2, field3) VALUES ';
$parameters = array();
$data = array();
while ($my_condition)
{
$parameters[] = '(?, ?, ?)';
$data[] = value1;
$data[] = value2;
$data[] = value3;
}
if (!empty($parameters))
{
$sql .= implode(', ', $parameters);
$stmt = sqlsrv_prepare($my_connection, $sql, $data);
sqlsrv_execute($stmt);
}
वहाँ एक बेहतर तरीका पैरामिट्रीकृत के साथ एक थोक डालने पूरा करने के लिए है:
$data_insert = "INSERT INTO my_table (field1, field2, field3) ";
$multiple_inserts = false;
while ($my_condition)
{
if ($multiple_inserts)
{
$data_insert .= " UNION ALL ";
}
$data_insert .= " SELECT myvalue1, myvalue2, myvalue3 ";
}
$recordset = sqlsrv_query($my_connection, $data_insert);
एक संभावित समाधान (How to insert an array into a single MySQL Prepared statement w/ PHP and PDO से संशोधित) प्रतीत होता है प्रश्नों?
एक संभावित समाधान, तैयार बयान के लिए विशिष्ट , "एकल तैयार, एकाधिक निष्पादन" –
मैं लेनदेन-हैंडलिंग की आवश्यकता को सीमित करने के लिए ऐसा करने से बचने की कोशिश कर रहा था। यदि कोई भी आवेषण विफल रहता है, तो पूरा ऑपरेशन विफल होना चाहिए। –
क्या लेनदेन? –