我试图用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;
?>
答案 0 :(得分:1)
导致错误的原因有两个原因。
您错过了分号;
和$
符号。以下是有效的。
$selected = mysql_select_db($db,$con); //Replace this with your existing line.
您正在混合mysql_*
和mysqli_*
<强> Sidenote:
强>
此mysql_*
)扩展程序自PHP 5.5.0
起不推荐使用,将来也会被删除。相反,应使用MySQLi
或PDO_MySQL
扩展名。切换到PreparedStatements
甚至可以更好地抵御SQL注入攻击!
<?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();
?>
答案 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也有不同的代码结构。因此,在网上搜索他们的正确结构。希望这有帮助