try {
$dbh = new PDO('mysql:host=localhost;dbname=wqposts', 'root', '');
$query = "SELECT wqpid FROM threads WHERE posted ='0'";
$randomids = '';
foreach ($dbh->query($query) AS $row) {
$randomids[] .= $row['wqpid'];
}
} catch (PDOException $exception) {
echo "Connection error: " . $exception->getMessage();
}
$post = array_rand($randomids, 1);
try {
$dbh = new PDO('mysql:host=localhost;dbname=wqposts', 'root', '');
$stmt = $dbh->prepare("SELECT * FROM threads WHERE wqpid = :wqpid");
$stmt->bindParam(':wqpid', $post, PDO::PARAM_INT);
$stmt->execute();
while ($row = $stmt->fetch()) {
//output html
}
不知何故,第一條語句中的WHERE發佈='0'不起作用,因爲第二條語句的結果發佈= 1。php mysql where clause
如果我在mysql中運行select * from threads where posted=0;
,我看到400-500的結果是正確的。如果需要它的發佈是TINYINT一長度1
不知道你試圖用線'做什麼$ randomids [] = $行[ 'wqpid'];',但'[]'表示你將一個值附加到一個數組上,所以你只要將$ randomids初始化爲一個空字符串就可以轉換成一個數組。然後,使用運算符'。='這是一個字符串連接器。我不知道這是什麼最終結果,但我不認爲這是你想要做的。 – Travesty3 2012-01-17 17:17:57