Ah, keine Ahnung ... Dann wäre es hilfreich, wenn Simon den String auslesen und hier posten würde, der an die DB geschickt wird. ;)
Es ist egal was ich eingebe. Ich bekomme als Ergebnis immer den ganzen DB Inhalt.
Hier mal meine Script, wobei ich nicht glaube dass das Problem bei denen liegt:
Configuration.php
<?php
final class Configuration {
const DB_HOST='localhost';
const DB_DATABASE='xxx';
const DB_PORT=3306;
const DB_USER='xxx';
const DB_PASSWORD='xxx';
}
?>
MyDb.php
<?php
require_once 'Configuration.php';
class MyDB {
private static $db;
private static $escapecounter = 0;
static public function getInstance() {
if(!self::$db) {
self::$db = new PDO(
'mysql:host='.Configuration::DB_HOST.';dbname='.Configuration::DB_DATABASE.';port='.Configuration::DB_PORT,
Configuration::DB_USER,
Configuration::DB_PASSWORD,
array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);
}
return self::$db;
}
static public function implode(&$pdoparams, $arr) {
$tmp = array();
foreach($arr as $val) {
$key = ':implode'.self::$escapecounter++;
$pdoparams[$key] = $val;
$tmp[] = $key;
}
return implode(',', $tmp);
}
}
?>
und eben die search.php wo, glaub ich, das Problem liegt:
<?php
require_once 'Configuration.php';
require_once 'MyDB.php';
$sql = "SELECT alias
FROM members
WHERE alias LIKE :username
LIMIT 10";
$stmt = MyDB::getInstance()->prepare($sql);
$stmt->execute(array(
':username' => "".$_REQUEST['sourceInput']."%",
));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<ul style="overflow:auto;">';
foreach($result as $row) {
printf('<li><b>%s</b>', $row['alias']);
}
echo '</ul>';
?>
MfG
Simon