mysql_query
是 PHP 中用于执行 MySQL 数据库查询的旧函数,它已经在 PHP 5.5.0 中被弃用,并在 PHP 7.0.0 中被完全移除。使用 mysql_query
的主要问题是它不支持预处理语句,这使得它容易受到 SQL 注入攻击。此外,它的扩展已经被废弃,不再接受任何安全更新或改进。
mysql_query
曾经是连接和查询 MySQL 数据库的常用方法。mysql_query
是 PHP 中的一个函数,属于 MySQL 扩展的一部分。mysql_query
,而是推荐使用 MySQLi 或 PDO 扩展。mysql_query
已经被弃用并在 PHP 7.0.0 中被移除。为了替代 mysql_query
,可以使用 MySQLi 或 PDO 扩展。以下是使用这两种方法的示例代码:
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 执行查询
$sql = "SELECT id, firstname, lastname FROM myDB";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 结果";
}
$conn->close();
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT id, firstname, lastname FROM myDB";
$stmt = $conn->prepare($sql);
$stmt->execute();
// 设置结果集为关联数组
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach($stmt->fetchAll() as $row) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
}
catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
$conn = null;
通过使用 MySQLi 或 PDO,可以提高代码的安全性、可维护性和性能。