【发布时间】:2014-09-03 10:16:29
【问题描述】:
首先回答时请尝试并尽可能简单地解释,因为我对php相当陌生。无论如何,我的问题是我不明白为什么我的关联数组到字符串的转换不起作用。我基本上使用与此处所述相同的模型:PHP 5 arrays 向下滚动以查看关联数组的示例。无论如何,当我将“亚当”提交到文本框中时,我总是得到的输出是:
注意:未定义的索引: 第 24 行 C:\xampp\htdocs\practice\src\fetchigndatausingpdo.php 中的 queryStr PID = 80 = 8 AND FirstName = adam AND 1 = adam AND LastName = preston AND 2 = preston AND Age = 17 AND 3 = 17 AND
以下是代码,如果您有任何建议,请通知我,谢谢 :)。出于安全原因,还故意将 $user 和 $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 编码的查询字符串。 php.net/manual/en/function.http-build-query.php