Php 如何正确查询MySQL数据库

Php 如何正确查询MySQL数据库,php,mysql,Php,Mysql,我正在做一个类似于下面的MySql查询,它可以正常工作,但我必须添加很多“@”,我想知道如何正确地执行它 $query="SELECT * FROM `facebook` ORDER by rand() LIMIT 1"; $result=mysql_query(@$query) or die(mysql_error()); $topic = htmlentities(mysql_result(@$result,@$i,"topic")); $name = htmlentities(mysql_

我正在做一个类似于下面的MySql查询,它可以正常工作,但我必须添加很多“@”,我想知道如何正确地执行它

$query="SELECT * FROM `facebook` ORDER by rand() LIMIT 1";
$result=mysql_query(@$query) or die(mysql_error());
$topic = htmlentities(mysql_result(@$result,@$i,"topic"));
$name = htmlentities(mysql_result(@$result,@$i,"name"));
$file = htmlentities(mysql_result(@$result,@$i,"file"));
$description = htmlentities(mysql_result(@$result,@$i,"description"));
下面是我如何拼凑输出的:

$params = array(
  "message" => ("". $topic .""),
  "link" => "http://www.example.com",
  "picture" => ("http://www.example.com/facebook/file-uploading/uploads/". $file .""),
  "name" => ("". $name .""),
  "caption" => "WWW.EXAMPLE.COM",
  "description" => ("". $description ."")
);

谢谢

我假设您正在使用PHP。我经常使用PDO,这是我通常做的

//PDO Connection
$connection = new PDO("MYSQL:host=localhost; dbname=mydb","userName","password");

//Query
$stmt = $connection->prepare("SELECT * FROM myTable WHERE id = ?");
//Execute query passing in parameter for id
$stmt->execute(array(5));
//Get Result
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

我曾经使用过msqli,但是最近我非常喜欢使用PDO

如果您正在寻找“正确”的方法,那么请忘记您正在做的一切,并使用正确的api
mysql.*
函数已弃用,使用起来不安全。如果运行正常,为什么必须添加
@
函数?其中之一:1)您正在使用带注释的ORM 2)您正在覆盖错误。您的意思是您的服务器上没有安装PDO模块?或者它在您的服务器上不是活动的?或者您没有使用PHP?@user2533583安装PDO。它是免费的。