【发布时间】:2010-08-24 21:32:27
【问题描述】:
我对从 mysql 服务器回显字符串列表的想法感到困惑。过程将如何进行?我想要的格式是这样的:
Name 1
Name 2
Name 3
Name 4
但是每个新名称都在一个新单元格中,我不知道如何从 mysql 服务器收集每个名称。 PHP 对我来说是一门非常新的语言,所以请放轻松:)
【问题讨论】:
我对从 mysql 服务器回显字符串列表的想法感到困惑。过程将如何进行?我想要的格式是这样的:
Name 1
Name 2
Name 3
Name 4
但是每个新名称都在一个新单元格中,我不知道如何从 mysql 服务器收集每个名称。 PHP 对我来说是一门非常新的语言,所以请放轻松:)
【问题讨论】:
查询表,然后循环遍历结果数组,这个例子假设列名是“name”
$query = “SELECT * FROM table”;
$showresult = mysql_query($query);
while($results_array = mysql_fetch_assoc($showresult))
{
echo "Name ".$results_array["name"];
}
【讨论】:
至少有三个扩展模块提供对 MySQL 服务器的访问:旧的 php-mysql 模块、MySQL improved module 和 PDO with its MySQL driver。 Pete 为您提供了一个“旧”MySQL 模块的示例。让我向您展示一个使用 PDO 和 (server-side) prepared statements 的示例:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'localonly', 'localonly');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
setupTestdata($pdo);
$stmt = $pdo->prepare('SELECT foo FROM soTest WHERE id<?');
$stmt->execute( array(3) );
while( false!==($row=$stmt->fetch(PDO::FETCH_ASSOC)) ) {
echo $row['foo'], "\n";
}
echo "same statement again, different parameter:\n";
$stmt->execute( array(5) );
while( false!==($row=$stmt->fetch(PDO::FETCH_ASSOC)) ) {
echo $row['foo'], "\n";
}
function setupTestdata($pdo) {
$pdo->query('CREATE TEMPORARY TABLE soTest (id int auto_increment, foo varchar(16), primary key(id))');
$pdo->query("INSERT INTO soTest (foo) VALUES ('nameA'), ('nameB'), ('nameC'), ('nameD'), ('nameE')");
}
打印
nameA
nameB
same statement again, different parameter:
nameA
nameB
nameC
nameD
【讨论】: