我在php Pdo中得到了这个:
TC1
test step 1
test step 2
test step 3
TC2
test step 1
test step 2
test step 3
这有效,但是我试图在select中尝试使用where语句,但是它没有用:
$db = DBWrapper::getInstance();
$table = "table";
$columns = array("id", "firstname", "lastname");
$whereRand = array('categorie_bit = :idRand');
$values = array('idRand' => 00);
$orderBy = array('RAND()');
$result_set = $db->select($table,$columns,Null, Null, $orderBy, 1);
foreach($result_set as $result) {}
有谁知道如何实现这个目标?
答案 0 :(得分:0)
首先,它不是PDO。但某种自制查询构建器,质量非常低。
而不是使用它,更好地使用vanilla PDO:
$sql = "SELECT id, firstname, lastname FROM table WHERE categorie_bit = :idRand ORDER BY RAND()";
$stmt = $pdo->prepare($sql);
$stmt->execute(array('idRand' => 00));
foreach($stmt as $result) {}
看 - 它会减少你编写的代码,它会让你使用你想要的任何SQL语句。更不用说普通SQL的可读性了,你可以一眼就知道你的查询是做什么的。在看你的函数调用时,你可以告诉你的是WTF。请记住 - 程序不仅仅是为了编写。有时他们必须被阅读。 SQL是可读的。好的查询构建器是可读的。只是一堆变量不是。
答案 1 :(得分:0)
我解决了,这是一个很小的错误......
改变了这个:
$result_set = $db->select($table,$columns,Null, Null, $orderBy, 1);
到此:
$result_set = $db->select($table, $columns, $whereRand, $valuesRand, $orderBy, 1);
我忘了增加价值。