php从数据库中收集数据

php从数据库中收集数据,php,mysql,Php,Mysql,正在尝试从我的sql数据库加载包含数据的HTML表单。我使用ZamppHpmyadmin <?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_numb

正在尝试从我的sql数据库加载包含数据的HTML表单。我使用ZamppHpmyadmin

<?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();
?>

我怎么了

  • mysql\uu
    函数已被弃用。使用
    PDO
    mysqli
  • 不要使用
    @
    抑制错误;使用错误处理程序(即mysql\u error
  • 您没有从任何表或列中进行选择
  • 执行查询后,不会获取结果集
  • 在不使用绑定参数的情况下将变量传递到查询中会使您面临SQL注入
  • 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);
    ?>
    
    
    

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

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

    SELECT `title`, `service_number` FROM `tblname`
    
    但是应该提醒您,
    mysql.*
    函数集现在已经被弃用,您应该使用或


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

    您的查询完全错误。正确的
    选择
    查询如下:

    SELECT fields FROM table;
    SELECT * FROM table;
    
    您在查询(
    $title,$service\u number…
    )中使用的是PHP变量,而在提供的代码中,这些变量并不存在。您需要修复您的查询


    注意:它是
    字段
    *
    ,而不是两者。另外,不要使用MySQL,它从PHP5.5开始就被弃用了。使用MySQLi_*或PDO

    这应该会让你走起来

    <?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);
    } 
    

    。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。请查看SQL select语句是如何编写的,与您编写的语句完全不同:您没有指定表名;您正在指定“所有列”(*),然后给出一长串未定义的变量。。。。即使是一些基本的阅读也会告诉你这是错误的。首先,最好使用PDO或mysqli,其次,你在该查询中尝试了什么oDo不抑制带有
    @
    符号的错误!不要使用
    mysql\u
    函数,但已经详细指出了这一点。做一个像样的PHP/SQL教程,因为您的查询永远不会以这种方式工作。另外,
    string
    需要用引号封装。当你在做这件事的时候,阅读一下SQL注入。我相信你也没有做任何反对的事情。顺便说一句,我认为这是我在这里看到的最糟糕的SQL查询。为什么人们在这里发帖之前至少不学习一些基本的东西?如果你从一个网站上拿了这个,它就是复制的内容。请引用取自php.net pdo docs的source.dsn:手动键入的其他行回答要获取的名称字段解析错误:语法错误,意外“;”在C:\xampp\htdocs\show.php中联机111@pitbull10不知道你的意思。