php从数据库中收集数据

时间:2013-03-11 14:29:25

标签: php mysql

尝试使用我的sql数据库中的数据加载HTML表单。我使用Zampp phpmyadmin

<?php
$user = 'root';
$password = '';


$database="client";

mysql_connect(localhost,client);
@mysql_select_db($client) or die( "Unable to select database");
echo $query = "SELECT * $title,$service_number,$firstName,$LastName,$dob,$address,$postcode,$tel_number,$mob_number,$email,$partner_id ";
$result = mysql_query($query);

mysql_close();
?>

我有什么不对?

4 个答案:

答案 0 :(得分:3)

  1. mysql_函数已弃用。使用PDOmysqli_
  2. 请勿使用@来抑制错误;使用错误处理程序(即mysql_error
  3. 您不是从任何表格或任何列中进行选择
  4. 执行查询后,您无法获取结果集
  5. 将变量传递给没有绑定参数的查询会让您打开SQL注入
  6. mysqli_

    的示例使用
    <?php
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");
    
    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    
    $query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";
    
    if ($result = mysqli_query($link, $query)) {
    
        /* fetch associative array */
        while ($row = mysqli_fetch_assoc($result)) {
            printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
        }
    
        /* free result set */
        mysqli_free_result($result);
    }
    
    /* close connection */
    mysqli_close($link);
    ?>
    

    See the documentation

答案 1 :(得分:1)

您的查询结构不合理。您需要指定应从中选择记录的表名。例如,您应该执行以下操作:

SELECT * FROM `tblname`

这将为表格中的每条记录选择所有字段。您可以通过包含它们(不带*通配符)来指定特定字段,如下所示:

SELECT `title`, `service_number` FROM `tblname`

虽然现在不推荐使用mysql_*一组函数,但您应该使用PDOMySQLi

您还应该确保转义您传入的变量。您的代码以当前形式对SQL注入开放。

答案 2 :(得分:0)

你的查询是完全错误的。正确SELECT查询是这样的:

SELECT fields FROM table;
SELECT * FROM table;

您在查询中使用PHP变量($title,$service_number...),在提供的代码中,该变量不存在。您需要修复查询。

注意:它是fields*,而不是两者。另外,不要使用MySQL_ *,自PHP 5.5起它已被弃用。使用MySQLi_ *或PDO

答案 3 :(得分:0)

这应该让你去

<?php
$dsn = 'mysql:host=localhost;dbname=client';
$username = 'root';
$password = '';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
); 

$dbh = new PDO($dsn, $username, $password, $options);

$sql = $dbh->prepare("SELECT title,service_number,FirstName,LastName,dob,address,postcode,te‌l_number,mob_number,email,partner_id FROM client_table");
$sql->execute();
$results = $sql->fetchAll(PDO::FETCH_ASSOC);

foreach($results as $r){
var_dump($r);
}