Прежде всего, отвечая, пожалуйста, попробуйте объяснить, насколько это возможно, поскольку я довольно новичок в php. В любом случае, моя проблема в том, что я не понимаю, почему мой ассоциативный массив для преобразования строк не работает. В основном я использую ту же модель, что описана здесь: PHP 5 arrays Прокрутите вниз, чтобы увидеть пример для ассоциативных массивов. Во всяком случае, выход я всегда получаю это когда я представляю "Адам" в текстовое поле:ассоциативный массив для преобразования строки
Notice: Undefined индекс: queryStr в C: \ XAMPP \ HTDOCS \ практика \ SRC \ fetchigndatausingpdo.php на линии 24 PID = 80 = 8 AND FirstName = adam AND 1 = adam AND LastName = preston AND 2 = preston AND Возраст = 17 AND 3 = 17 AND
Ниже приведен код, если у вас есть предложения, пожалуйста, сообщите мне, thankyou :). Кроме того, пользовательские и $ pass были намеренно закрыты по соображениям безопасности.
<form action="fetchigndatausingpdo.php" method="post">
<input type="text" name="name">
<input type="submit" name="submit" value="submit">
</form>
<?php
$user = "adam";
$pass = "**********";
if(isset($_POST['name'])){
try{
$dbh = new PDO('mysql:host=localhost;dbname=my_db', $user, $pass, array(PDO::ATTR_PERSISTENT=>true));
$stmt = $dbh->prepare("SELECT * FROM persons WHERE FirstName LIKE ?");
$stmt->execute(array($_POST['name']));
if($stmt->rowCount() > 0){
$result = $stmt->fetchAll();
$terms = count($result);
foreach($result as $person){
foreach ($person AS $field => $value){
$terms--;
$GLOBALS['queryStr'].= $field.' = '.$value;
if($terms){
$GLOBALS['queryStr'].=' AND ';
}
}
}
echo $queryStr;
}
}catch(PDOException $e){
echo $e->getMessage();
}
}
?>
Вы можете использовать http_build_query() для этого. Создает строку запроса с кодировкой URL из предоставленного ассоциативного (или проиндексированного) массива. http://php.net/manual/en/function.http-build-query.php – deadman