Попытка понять, как использовать PDO, и я использую некоторые готовые функции, чтобы упростить задачу, когда я хочу сделать запрос. Первый подключается, второй запускает запрос.Использование PDO для создания функции запроса mysql, не вставлять строки
К сожалению, это не позволит мне вставлять строки INSERT, используя dbquery(). SELECT отлично работает, просто не может заставить ничего работать.
Вот код:
function dbConnect()
{
global $dbh;
$dbInfo['database_target'] = "localhost";
$dbInfo['database_name'] = "mysqltester";
$dbInfo['username'] = "root";
$dbInfo['password'] = "password";
$dbConnString = "mysql:host=" . $dbInfo['database_target'] . "; dbname=" . $dbInfo['database_name'];
$dbh = new PDO($dbConnString, $dbInfo['username'], $dbInfo['password']);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$error = $dbh->errorInfo();
if($error[0] != "")
{
print "<p>DATABASE CONNECTION ERROR:</p>";
print_r($error);
}
}
function dbQuery($queryString)
{
global $dbh;
$query = $dbh->query($queryString);
$i = 0;
foreach ($query as $query2)
{
$queryReturn[$i] = $query2;
$i++;
}
if($i > 1)
{
return $queryReturn;
}
else
{
return $queryReturn[0];
}
}
Так использовать что-то вроде этого? $ dbh-> exec ("INSERT INTO tester1 (имя, возраст) VALUES ('James', 25)"); – JoeCortopassi
Да. Хотя я настоятельно рекомендую использовать подготовленные заявления, когда это уместно, они справляются с побегом для вас. Я обновлю свой ответ, чтобы отразить это. – hobodave
Спасибо. Подготовленные утверждения предотвращают инъекцию sql? – JoeCortopassi