Tag: MySQL

MySQL大圆距离(Haversine公式)

我有一个工作的PHP脚本获取经度和纬度值,然后将它们input到MySQL查询。 我想完全使用MySQL。 这是我目前的PHP代码: if ($distance != "Any" && $customer_zip != "") { //get the great circle distance //get the origin zip code info $zip_sql = "SELECT * FROM zip_code WHERE zip_code = '$customer_zip'"; $result = mysql_query($zip_sql); $row = mysql_fetch_array($result); $origin_lat = $row['lat']; $origin_lon = $row['lon']; //get the range $lat_range = $distance/69.172; $lon_range = abs($distance/(cos($details[0]) * […]

如何正确设置PDO连接

有时我会看到有关连接到数据库的问题。 大多数答案不是我做的方式,或者我可能只是不正确地得到答案。 无论如何; 我从来没有想过,因为我这样做的方式适用于我。 但是这是一个疯狂的想法。 也许我这样做是完全错误的,如果是这样的话; 我真的想知道如何正确连接到使用PHP和PDO的MySQL数据库,并使其易于访问。 以下是我如何做到这一点: 首先,我的文件结构(剥离) : public_html/ * index.php * initialize/ — load.initialize.php — configure.php — sessions.php 的index.php 在最顶层,我require('initialize/load.initialize.php'); 。 load.initialize.php # site configurations require('configure.php'); # connect to database require('root/somewhere/connect.php'); // this file is placed outside of public_html for better security. # include classes foreach (glob('assets/classes/*.class.php') as $class_filename){ include($class_filename); } # […]

如何创build一个MySQL分层recursion查询

我有一个MySQL表,如下所示: id | name | parent_id 19 | category1 | 0 20 | category2 | 19 21 | category3 | 20 22 | category4 | 21 …… 现在,我想要一个单一的MySQL查询,我只是提供了id [例如'id = 19'],那么我应该得到它的所有子id(即结果应该有ids'20,21,22']。此外,孩子的层次结构是不知道它可以改变…. 此外,我已经有使用for循环的解决scheme…..让我知道如果可能的话,使用单个MySQL查询来实现同样的目的。

MySQL – 行到列

我试图searchpost,但我只findSQL Server / Access的解决scheme。 我需要在MySQL(5.X)的解决scheme。 我有一个表(称为历史),有3列:hostid,itemname,itemvalue。 如果我做一个select( select * from history ),它会返回 +——–+———-+———–+ | hostid | itemname | itemvalue | +——–+———-+———–+ | 1 | A | 10 | +——–+———-+———–+ | 1 | B | 3 | +——–+———-+———–+ | 2 | A | 9 | +——–+———-+———–+ | 2 | c | 40 | +——–+———-+———–+ 我如何查询数据库返回类似的东西 +——–+——+—–+—–+ […]

MySQL从600K行中快速select10个随机行

我怎样才能最好地写一个从总共600k中随机select10行的查询?

插入MySQL表或更新(如果存在)

我想添加一行到数据库表,但如果一行存在具有相同的唯一键我想更新行。 例如, insert into table (id, name, age) values(1, "A", 19) 假设唯一的关键是id ,并且在我的数据库中有一个id = 1的行。 在这种情况下,我想用这些值更新该行。 通常这会产生一个错误。 如果我使用insert IGNORE它将忽略错误,但它仍然不会更新。

如何在LIMIT子句中应用bindValue方法?

这里是我的代码的快照: $fetchPictures = $PDO->prepare("SELECT * FROM pictures WHERE album = :albumId ORDER BY id ASC LIMIT :skip, :max"); $fetchPictures->bindValue(':albumId', $_GET['albumid'], PDO::PARAM_INT); if(isset($_GET['skip'])) { $fetchPictures->bindValue(':skip', trim($_GET['skip']), PDO::PARAM_INT); } else { $fetchPictures->bindValue(':skip', 0, PDO::PARAM_INT); } $fetchPictures->bindValue(':max', $max, PDO::PARAM_INT); $fetchPictures->execute() or die(print_r($fetchPictures->errorInfo())); $pictures = $fetchPictures->fetchAll(PDO::FETCH_ASSOC); 我明白了 你的SQL语法有错误; 检查对应于您的MySQL服务器版本的手册,在第1行的'15',15'附近使用正确的语法 看来PDO在SQL代码的LIMIT部分中将单引号添加到我的variables中。 我查了一下,我发现这个bug,我认为是相关的: http : //bugs.php.net/bug.php?id=44639 那是我在看什么? 这个错误已经从2008年4月开始! 我们在这期间应该做什么? 我需要build立一些分页,并且在发送sql语句之前需要确保数据是干净的,sql注入安全的。

如何筛选具有多对一关系的SQL结果

假设我有桌子student , club和student_club : student { id name } club { id name } student_club { student_id club_id } 我想知道如何find足球(30)和棒球(50)俱乐部的所有学生。 虽然这个查询不起作用,但这是我迄今为止最接近的事情: SELECT student.* FROM student INNER JOIN student_club sc ON student.id = sc.student_id LEFT JOIN club c ON c.id = sc.club_id WHERE c.id = 30 AND c.id = 50

删除MySQL中的重复行

我有一个表格,内容如下: id (Unique) url (Unique) title company site_id 现在,我需要删除具有相同标题,公司和site_id的行。 一种方法是使用下面的SQL和一个脚本(PHP): SELECT title, site_id, location, id, count( * ) FROM jobs GROUP BY site_id, company, title, location HAVING count( * ) >1 运行此查询后,我可以使用服务器端脚本删除重复项。 但是,我想知道这是否只能使用SQL查询完成。

MySQL错误1045(28000):访问拒绝用户'bill'@'localhost'(使用密码:是)

首先让我提一下,我已经经历了许多build议的问题,并没有发现相关的答案。 这是我正在做的。 我已连接到我的Amazon EC2实例。 我可以用这个命令loginMySQL根目录: mysql -u root -p 然后,我创build了一个新的用户帐单与主机% CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass'; 授予用户帐单的所有权限: grant all privileges on *.* to 'bill'@'%' with grant option; 然后我退出root用户,并尝试login帐单: mysql -u bill -p input正确的密码,并得到这个错误: 错误1045(28000):访问拒绝用户'bill'@'localhost'(使用密码:是)