【问题标题】:Select mysql in PHP with 2 vars使用 2 个变量在 PHP 中选择 mysql
【发布时间】:2011-12-09 03:43:34
【问题描述】:

我怎样才能使这个 whitout php 通知错误:

$id = $_GET['id'];
$name = $_POST['name'];

$sql = mysql_query("SELECT * FROM table WHERE id = '$id' or name = '$name');

以及如何一次在多个表中进行一次搜索。

谢谢

【问题讨论】:

  • 要搜索许多表,您可以进行一堆查询并将它们全部回显。 “whitout php notice error”是什么意思?那不是错误。不要忘记也做你的mysql_real_escape_string()
  • 您想知道如何在多个表中进行搜索,还是在询问您遇到的错误?
  • @Ken:我假设它会在 $_GET['id']$_POST['name'] 尚未定义时产生通知。
  • 您在$sql 行上缺少一个结束"
  • @animuson 如果没有定义,他为什么要打电话给他们?

标签: php mysql


【解决方案1】:

您的查询字符串不完整。你需要在末尾加上一个双引号。

$sql = mysql_query("SELECT * FROM table WHERE id = '$id' or name = '$name'");
                   ^                                                      ^

要一次搜索多个表,请添加更多表,用逗号分隔。

"SELECT table1.field, table2.field FROM table1, table2"

【讨论】:

  • 这回答了我相信他试图问的部分问题。 +1
  • 非常感谢您的回答。第一个问题是完美的,但是“搜索独角兽居住的地方......;-) 仍然在我的脑海中 :)。好吧,我的意思是:我想在许多表中使用 ` $sql = mysql_query("SELECT * FROM cars,people,cities WHERE cars.reg= '$search' || people.phone = '$search' || city.address = '$ search'"); ` 有可能这样做吗?有什么建议可以用 PHP 进行数据库搜索吗?非常感谢
  • 它应该可以工作。只要确保您转义您的输入以防止 SQL 注入。另外,我相信 MySQL 中 or 的正确语法是“OR”,而不是“||”。
【解决方案2】:
$id = isset($_GET['id']) ? $_GET['id'] : null;
$name = isset($_POST['name']) ? $_POST['name'] : null;

if($id !== null || $name !== null) {
  $sql = mysql_query("SELECT * FROM table WHERE id = '$id' or name = '$name'");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 2014-10-28
    • 2015-08-22
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多