用php连接到sql数据库

时间:2014-03-05 04:51:40

标签: php mysql sql

我试图用PHP连接到sql数据库。由于某种原因,当我运行代码时,我得到的错误。

Parse error: syntax error, unexpected '$result' (T_VARIABLE) in C:\xampp2\htdocs
\tutorials\abb.php on line 13

我的代码就是这个......     

$user = 'root' ; 
$pass = 'xcvsdffd' ; 

$db = 'testdb' ; 

$con = new mysqli('localhost', $user , $pass , $db) or die("UNABLE TO CONNECT");

$selected = mysql_select_db($db,con) 

$result = mysql_query("SELECT * FROM test");


while ($row = mysql_fetch_array($result)) {
   echo "ID:".$row{'id'}." Name:".$row{'name33'}."
   ".$row{'year'}."<br>";
}



//close the connection and recordset objects freeing up resources 
$result->Close();
$con->Close();

$result = null;
$con = null;
?> 

6 个答案:

答案 0 :(得分:1)

导致错误的原因有两个原因。

1

您错过了分号;$符号。以下是有效的。

$selected = mysql_select_db($db,$con); //Replace this with your existing line.

2

您正在混合mysql_*mysqli_*


<强> Sidenote: mysql_*)扩展程序自PHP 5.5.0起不推荐使用,将来也会被删除。相反,应使用MySQLiPDO_MySQL扩展名。切换到PreparedStatements甚至可以更好地抵御SQL注入攻击!

PDO方式......

<?php
$dsn = 'mysql:dbname=testdb;host=localhost';
$user = 'root';
$password = 'xcvsdffd';

try
{
    $dbh = new PDO($dsn, $user, $password ,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e)
{
    echo 'Connection failed: ' . $e->getMessage();
}

有关详细信息,请阅读PHP Manual.或使用PreparedStatements in MySQLi

答案 1 :(得分:1)

Mysqli适用于MySQL 4.1.13或更新版本;如果你的版本是旧版本,那么你应该用这样的旧方式连接你的数据库:

$con=mysql_connect("localhost","root","pass");

mysql_select_db("database_name",$con);

答案 2 :(得分:0)

他们总是告诉我,MySQL命令现在已经折旧了。这就是使用PDO或MySQLI的好习惯。它很容易使用,如果你理解它的使用。

现在转到您的代码:

$connection = new mysqli("localhost","user","password","database name");
$selectDatabase = mysqli_select_db($connection,"database name");
$connection->query ("SELECT * FROM test");

希望这有帮助

答案 3 :(得分:0)

尝试以下操作,如果您正在创建mysqli连接,则不必再次使用mysql_select_db($db,con)选择数据库。或在此行后使用分号

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* change db to world db */
$mysqli->select_db("world");

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Reference

答案 4 :(得分:0)

一行中可能缺少分号。

mysql_select_db($db,$con);

答案 5 :(得分:0)

试试这个

<?php
$username = 'root';
$pass = 'pass';

$db = 'db';

$link = mysqli_connect('localhost',$username,$pass,$db);

if(!link){
echo "Not Connected to DB" . mysqli_connect_error();

$result = mysqli_query($link, "SELECT * FROM test");

while($row = mysqli_fetch_array($result)){
echo "ID: " . $row['id'];
echo "Name: " . $row['name33'];
echo "Year: " . $row['year'];
}


?>

在PHP中查询必须保持一致,这意味着如果你使用mysqli,你应该在整个PHP文件中使用它,如果你使用mysqli,你也必须在整个PHP文件中使用它。 mysqli和mysql也有不同的代码结构。因此,在网上搜索他们的正确结构。希望这有帮助