【问题标题】:Simple php - mysql select and insert简单的 php - mysql 选择和插入
【发布时间】:2020-10-14 12:28:34
【问题描述】:

我不是程序员(呵呵),我只需要制作一个非常简单的工具来填充 sql 数据库。首先我有带有表单的html:

<form action="http://localhost:8081/phpSearch.php" method ="post">
Enter code: <input type="text" name="search"><br>
<input type ="submit">
</form>

然后应该连接到MYSQL的php,根据输入(代码,名称)在一个表中搜索数据,然后用结果填充另一个表。而且我只是想念要放什么而不是问号。

<?php
$search1 = $_POST['search'];

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "mydb";

$conn = new mysqli($servername, $username, $password, $dbname);

$sql = "SELECT code,name FROM users WHERE code LIKE '%$search1%'";

$sql2 = "INSERT INTO newUsers (newCode,newName) VALUES ('$search1', ??????)";

$conn->close();
?>

我很确定这对各位专家来说很容易,所以提前致谢。

【问题讨论】:

  • 你错过了更多。仍然必须执行查询。我是否正确地假设此代码不会被陌生人使用,他们可能会尝试破解您的数据库?
  • 我们帮助修复您的代码 - 而不是制作它。 .. 什么不适用于您的现有代码?我们需要这些信息来提供帮助。 ..
  • 请提供更多上下文,说明您上面的代码出了什么问题以及您要完成什么。同样如前所述,将需要执行那些 $sql 查询
  • 可能值得看一下 MySQL 中的 INSERT...SELECT 查询 -stackoverflow.com/questions/42784178/…

标签: php html sql mysqli


【解决方案1】:

您实际上可以在单个 SQL 查询中执行此操作:

$search1 = "%".$_POST['search']."%";
$sql = "INSERT INTO newUsers (newCode, newName) SELECT code, name FROM users WHERE code LIKE ?";

$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $search1);
$stmt->execute();

这会将 SELECT 查询的所有结果直接插入到另一个表中,而不需要 PHP 中的任何中间处理。有关INSERT...SELECT 查询格式的更多信息,请参见here。

注意我使用了准备好的语句和参数——它们既可以安全地执行查询,又可以降低意外语法错误的风险。你可以得到更多这个here的例子。

此外,在实际应用程序中,您不应从 Web 应用程序以 root 身份登录 - 而是为该应用程序创建一个 SQL 帐户,该帐户仅具有它实际需要的权限。

【讨论】:

  • 就是这样,非常感谢!这很简单,而且很有效。其他想法也不错,但我无法让它们发挥作用。谢谢大家的帮助,只是为了澄清一下-我知道我需要修复登录问题(root),但是当我拥有必要的功能时,这将在稍后进行。此外,该解决方案将在具有本地 WAMP 服务器的隔离 PC 上运行,因此我目前不需要特别的安全性。再次感谢!
猜你喜欢
  • 2012-07-02
  • 1970-01-01
  • 2011-02-15
  • 2011-10-16
  • 2015-02-07
  • 2016-11-15
  • 1970-01-01
  • 2012-10-14
  • 2019-05-30
相关资源
最近更新 更多