PHP怎么读取我的sql数据库全部数据 我的表名是:zc_message 请问我这样写是否正确?

PHP怎么读取我的sql数据库全部数据 我的表名是:zc_message 请问我这样写是否正确?,第1张

常识性错误

mysql_query是读取数据库中的数据到记录集,返回值不能直接输出,必须要用mysql_fetch_array($db)读取一行到一个数组中,之后再输出这个数组中的值,mysql_fetch_array读取记录集中的一行,并将这一行中每列的数据存储到一个一维数组中,读取成功后,指针指向记录集的下一行,所以,这时候继续用mysql_fetch_array就是读取下一行数据到数组中,因此,mysql_fetch_array通常是循环使用,

while($row=mysql_fetch_array($db))

{

    echo $row['表中列1的键名']

    echo $row['表中列2的键名']

}

这样输出全部数据

本篇文章是对使用PHP执行 SQL文件的实现代码进行了详细的分析介绍 需要的朋友参考下  

demo php:

复制代码 代码如下: <?php /** * 读取 sql 文件并写入数据库 * @version demo php */ class DBManager {     var $dbHost =     var $dbUser =     var $dbPassword =     var $dbSchema =     function __construct($host $user $password $schema)     {         $this >dbHost = $host        $this >dbUser = $user        $this >dbPassword = $password        $this >dbSchema = $schema    }     function createFromFile($sqlPath $delimiter = (/n)|((/r/n))|(/r) $prefix = $menter = array( # ))     {         //判断文件是否存在         if(!file_exists($sqlPath))             return false        $handle = fopen($sqlPath rb )           $sqlStr = fread($handle filesize($sqlPath))        //通过sql语法的语句分割符进行分割         $segment = explode("" trim($sqlStr))        //var_dump($segment)        //去掉注释和多余的空行         foreach($segment as &$statement)         {             $sentence = explode("/n" $statement)            $newStatement = array()            foreach($sentence as $subSentence)             {                 if( != trim($subSentence))                 {                     //判断是会否是注释                     $isComment = false                    foreach($menter as $er)                     {                         if(eregi("^(" $er ")" trim($subSentence)))                         {                             $isComment = true                            break                        }                     }                     //如果不是注释 则认为是sql语句                     if(!$isComment)                         $newStatement[] = $subSentence                                   }             }             $statement = $newStatement        }         //对表名加前缀         if( != $prefix)         {                    //只有表名在第一行出现时才有效 例如 CREATE TABLE talbeName             $regxTable = "^[/`/ /"]{ }[/_a zA Z]+[/_a zA Z ]*[/`/ /"]{ }$"//处理表名的正则表达式             $regxLeftWall = "^[/`/ /"]{ }"            $sqlFlagTree = array(                     "CREATE" =>array(                             "TABLE" =>array(                                     "$regxTable" =>                                )                         )                     "INSERT" =>array(                             "INTO" =>array(                                 "$regxTable" =>                            )                         )                     )            foreach($segment as &$statement)             {                 $tokens = split(" " $statement[ ])                $tableName = array()                $this >findTableName($sqlFlagTree $tokens $tableName)                if(empty($tableName[ leftWall ]))                 {                     $newTableName = $prefix $tableName[ name ]                }                 else{                     $newTableName = $tableName[ leftWall ] $prefix substr($tableName[ name ] )                }                 $statement[ ] = str_replace($tableName[ name ] $newTableName $statement[ ])            }         }               //组合sql语句         foreach($segment as &$statement)         {             $newStmt =             foreach($statement as $sentence)             {                 $newStmt = $newStmt trim($sentence) "/n"            }             $statement = $newStmt        }         //用于测试                //var_dump($segment)        //writeArrayToFile( data txt $segment)        //         self::saveByQuery($segment)        return true    }     private function saveByQuery($sqlArray)     {         $conn = mysql_connect($this >dbHost $this >dbUser $this >dbPassword)        mysql_select_db($this >dbSchema)        foreach($sqlArray as $sql)         {             mysql_query($sql)        }               mysql_close($conn)    }     private function findTableName($sqlFlagTree $tokens $tokensKey= &$tableName = array())     {         $regxLeftWall = "^[/`/ /"]{ }"        if(count($tokens)<=$tokensKey)             return false               if( == trim($tokens[$tokensKey]))         {             return self::findTableName($sqlFlagTree $tokens $tokensKey+ $tableName)        }         else         {             foreach($sqlFlagTree as $flag =>$v)             {                   if(eregi($flag $tokens[$tokensKey]))                 {                     if( ==$v)                     {                         $tableName[ name ] = $tokens[$tokensKey]                        if(eregi($regxLeftWall $tableName[ name ]))                         {                             $tableName[ leftWall ] = $tableName[ name ]{ }                        }                         return true                    }                     else{                         return self::findTableName($v $tokens $tokensKey+ &$tableName)                    }                 }             }         }         return false    } } function writeArrayToFile($fileName $dataArray $delimiter="/r/n") {     $handle=fopen($fileName "wb")    $text =     foreach($dataArray as $data)     {         $text = $text $data $delimiter    }     fwrite($handle $text)} //测试 $dbM = new DBManager( localhost w f test )$dbM >createFromFile( data sql null fff_ )?>lishixinzhi/Article/program/PHP/201311/21281

$conn = mysqli_connect("localhost", "root", "root")//数据库ip,账号,密码

mysqli_select_db($conn, "DB")//第二个为数据库名 自己修改

mysqli_set_charset($conn, 'utf8')//设置编码

$sql = "select * frome zc_message"

$result = mysqli_query($conn, $sql)

$result就是获得的数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9254122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存