Если вы хотите управлять подготовленным оператором, используя PDO , попробуйте следующий код:
<?php
$servername = "hostname";
$username = "username";
$password = "password";
$dbname = "database";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql
$sql = "SELECT * FROM Persons";
// considering this is the array you want to use to prepare the sql
$params = array("LastName" => 1, "FirstName" => 1, "Address" => 1);
foreach($params as $attr => $val) {
$where[] = "$attr = :$attr";
}
$sql .= " where " . join(' and ', $where); // *** where LastName = :LastName and FirstName = :FirstName and Address = :Address
$stmt = $conn->prepare($sql); // *** SELECT * FROM Persons where LastName = :LastName and FirstName = :FirstName and Address = :Address
// bind parameters
foreach($params as $attr => $val) {
$stmt->bindValue(":$attr", $val, PDO::PARAM_STR);
}
$stmt->execute();
//$stmt->debugDumpParams();
echo $stmt->rowCount();
print_r($stmt->fetch());
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
Или, если вы хотите управлять подготовленным оператором, используя mysqli , попробуйте следующее:
<?php
$servername = "hostname";
$username = "username";
$password = "password";
$dbname = "database";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM Persons";
// considering this is the array you want to use to prepare the sql
$params = array("LastName" => 1, "FirstName" => 0, "Address" => 1);
$sqltype = "";
foreach($params as $attr => $val) {
$where[] = "$attr = ?";
$sqltype .= 's';
$bind_val[] = $val;
}
$sql .= " where " . join(' and ', $where); // *** SELECT * FROM Persons where LastName = ? and FirstName = ? and Address = ?
// prepare sql
$stmt = $conn->prepare($sql);
// bind parameters
$stmt->bind_param( $sqltype, ...$bind_val ); // *** $stmt->bind_param("sss", 1, 0, 1);
$stmt->execute();
$result = $stmt->get_result();
echo $result->num_rows;
print_r($result);
мерзавец-svn (1) говорит:
Ради простоты и взаимодействующий с менее - способная система (SVN), рекомендуется, чтобы все пользователи мерзавца-svn клонировались, выборка и dcommit непосредственно с сервера SVN, и избежали всех git-clone/pull/merge/push операций между репозиториями мерзавца и ответвлений. Рекомендуемый метод обмена кодом между ответвлениями мерзавца и пользователями является патчем формата мерзавца и мерзавцем-git-am, или просто 'dcommit'ing к репозиторию SVN.
Если Ваша ситуация позволяет его, можно использовать ответвления (т.е. подкаталоги) в репозитории SVN для изоляции работы от других разработчиков.
Я обнаружил, что слияние изменений git-svn с различными ветвями git и между ними вполне нормально. Проблема с git-svn начинается с объединения этих изменений с svn (или, скорее, с веткой git, из которой вы выполняете dcommit). Мне кажется, что большинство этих проблем можно предотвратить, если вы вручную объедините свои изменения обратно в svn (например, с помощью git diff | patch
). Это удалит историю из того, что вы объединяете, но пользователи Subversion привыкли к этому, и это не имеет большого значения.