gpt4 book ai didi

PHP MYSQL 使用数据库变量创建数据库

转载 作者:行者123 更新时间:2023-12-01 00:12:06 26 4
gpt4 key购买 nike

我已经创建了以下代码,但我似乎无法找出它有什么问题,我们将不胜感激任何帮助。

<?php

$con = mysql_connect("host","user","password");

mysql_select_db("Stores", $con);

$street = mysql_query("SELECT Street FROM Sports WHERE Name = 'Nike'");

if (mysql_query("CREATE DATABASE $street", $con))
{
echo "Success";
}

else
{
echo "Fail";
}

mysql_close($con);

我总是失败,谁能给我指出正确的方向?

最佳答案

这段代码有很多问题:

  1. 一开始这可能不是很相关,但是 php mysql 扩展被标记为已弃用,请切换到 mysqli 或更好,PDO as is also indicated in the official documentation .弃用意味着它只在那里支持遗留代码(这意味着它不应该在新代码中使用)并且它将在未来的某个时候消失。我建议使用 PDO,因为它是一个更加成熟、灵活和通用的数据库接口(interface),如果您打算花时间学习一些东西,PDO 绝对是您的不二之选。特别关注prepared statements ,它们将帮助您避免各种问题,而不必摸索各种转义函数。
  2. mysql_query 返回一个查询结果(作为资源),您应该使用某种获取命令阅读该结果 - 请参阅 doc for PDO's query() method here
  3. 我完全不明白您为什么要在您的服务器上创建一个以您通过查询找到的街道 命名的新数据库?您可能应该解释一下您的意图,我很确定这不会按照您的意愿行事。

根据评论编辑:

对我来说,切换到 PDO 的主要优势是

  • 面向 future :有了 mysql_ 扩展,有一天您将升级 php,而该扩展将永远消失。 PDO 不会很快发生这种情况。
  • 支持多个数据库:传统上,每个数据库品牌都由其自己的 mysql 专有扩展提供服务。 PDO 统一了所有这些扩展,这意味着您可以使用 1 个 API 使用现有的大多数常见数据库。请注意,它并没有消除这些数据库之间的方言差异,但是拥有一个适用于所有数据库的 API 绝对是一大优势。
  • PDO 积极鼓励您使用准备好的语句,这些语句通常被认为是针对各种安全问题(例如 SQL 注入(inject))的防弹但简单的保护措施 - 无需进行常规 SQL 所需的所有转义废话陈述有点安全。

关于为每个用户创建数据库的评论,我真的认为您需要阅读一些关于关系数据库的介绍 Material 。最常见的是,一个应用程序由一个数据库支持,在大多数情况下,该数据库包含一组固定的表(例如商店、客户、订单、订单项)以及它们之间的关系。例如,一家商店有很多顾客,每个顾客都有一个或多个订单,每个订单包含一个或多个商品。所有数据都是通过查询利用这些关系来获取的,例如使用连接来提取属于一个订单的所有项目,或者列出与一个客户关联的所有订单。这里重要的是,除了最特殊的情况外,每种数据类型只有一个表。也就是说,所有客户都存储在一张表中,所有订单都存储在一张表中,依此类推。

我没有时间全部看完,但是databaseprimer.com可能有助于您开始了解这些概念。

关于PHP MYSQL 使用数据库变量创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com