小编Kev*_*vin的帖子

Mysql数据类型 - Enum或不枚举,Enum是否为空?

我有大型数据库(数百万行),我正在尝试为2个字段的数据类型做出最佳选择.我做的大部分都是varchar或INT.然而,2个领域我想知道Enum是否是最好的方式.

字段1 第一个字段是性别,我的数据目前是"男性"或"女性",或者可能是空白.我最初设置如下:

GENDER VARCHAR(6) NOT NULL
Run Code Online (Sandbox Code Playgroud)

这是最好的方式,还是最好将其设置为:

GENDER ENUM ('Male', 'Female') NOT NULL
Run Code Online (Sandbox Code Playgroud)

我是否需要将其设为NOT NULL以允许空白,或者我是否需要添加空白,即

GENDER ENUM ('Male', 'Female', '') NOT NULL
Run Code Online (Sandbox Code Playgroud)

更何况,我正在考虑将整个领域转换为M或F.

第2场: 除了状态字段外,我还有很多相同的事情要考虑,其中可能包含52个值(50个状态,DC,加空白).

我想最大的问题是 - 所有这些Enum的东西都值得吗?我的数据库有数百万行,所以一切都是一个因素,但我应该只使用VARCHAR(2)作为状态而不是ENUM.

mysql database database-schema

12
推荐指数
2
解决办法
8424
查看次数

Javascript/Onclick - 鼠标光标移动时鼠标光标

我正在使用投票按钮.

按钮是一个简单的链接,但搜索引擎蜘蛛抓取页面并触发虚假投票.因此,我将其更改为onclick以使其停止.

但是,执行此操作后,按钮仍可正常工作,但鼠标光标不再具有"手形"指针.当你鼠标悬停时它仍然是箭头指针,所以很难说它是一个实际的功能链接.

为了解决这个问题,我添加了一个style ="cursor:default;",我也尝试了style ="cursor:crosshair;" 尝试更改游标行为,但它不起作用.光标始终是指针.

这是我的代码:

<map id="vote_buttons" name="vote_buttons">
     <area shape="rect" alt="" coords="5,3,78,43" onClick="window.location='http://www.site.com/page.php?vote=Y'" style="cursor:default;" title="" />
     <area shape="rect" alt="" coords="83,3,160,44" onClick="window.location='http://www.site.com/page.php?vote=N'" style="cursor:pointer;" title="" />
     <area shape="default" nohref="nohref" alt="" />
</map>
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么让这个鼠标看起来像一只手?

一如既往地感谢您.

html javascript onclick

11
推荐指数
4
解决办法
6万
查看次数

准备好的陈述 - 行数

我正在学习预处理语句并尝试使用产生多行结果的查询.现在,我只想弄清楚如何确定行数,然后在html中显示该数字.

我准备好的陈述如下:

if($stmt = $mysqli -> prepare("SELECT field1, field2, field3 FROM table WHERE id= ?ORDER BY id ASC")) 
    {
    /* Bind parameters, s - string, b - blob, i - int, etc */
    $stmt -> bind_param("i", $id);
    $stmt -> execute();

    /* Bind results */
    $stmt -> bind_result($testfield1, $testfield2, $testfield3);

    /* Fetch the value */
    $stmt -> fetch();

    /* Close statement */
    $stmt -> close();
   }
Run Code Online (Sandbox Code Playgroud)

我明白我应该先保存结果,然后使用num_rows,如下所示:

$stmt->store_result();
$stmt->num_rows;
Run Code Online (Sandbox Code Playgroud)

但是,当我把那些代码放在那里时,我正在运行并发布页面问题.我甚至无法进入如何显示行数的下一步

所以,问题是:在计算预准备语句中的行数方面我缺少什么,那么我将如何显示它 <?php echo '# rows: '.$WHATGOESHERE;?>

谢谢!!

php mysql prepared-statement

11
推荐指数
1
解决办法
2万
查看次数

PHPMyAdmin/MySql - 添加ID字段和自动填充ID号

我有一个非常大的数据库表 - 近2000万条记录.

记录没有唯一的ID号.所以,我插入了新字段.

现在,我想用ID号填充它,增加1,从第一个ID号为10,000,001开始.

仅供参考 - 我在本地计算机上使用WAMP和我拨我的最多次数高达5000秒,为了做到在第一时间上传(历时更拨通了在php.ini和mysql.ini其他几个变量超过10小时!!).

在过去,或者与其他数据库一起,我可能已经将数据导出到excel中,然后掀起一些文本以粘贴回phpmyadmin以更新记录.使用5K记录甚至100K记录时这很好,但这似乎无法容纳2000万条记录.

提前致谢!!

php mysql phpmyadmin wampserver

8
推荐指数
1
解决办法
2万
查看次数

MySql - WAMP - 巨大的表非常慢(2000万行)

所以我贴了这个!昨天得到了一个完美的答案,需要先运行此代码:ALTER TABLE mytable AUTO_INCREMENT = 10000001;

我运行了好几次,但是在几个小时不工作后重新启动了WAMP.过夜(12小时)后,代码仍未运行.

我想知道我的数据库表大小是否超过了mysql或我的计算机或两者的限制.

但是,我有一种偷偷摸摸的怀疑,正确的索引或其他因素可能会对我的表现产生很大的影响.我知道2000万行是很多行,但它太多了吗?

我对索引知之甚少,除了它们很重要.我试图将它们添加到名称和州字段中,我相信我成功了.

顺便说一下,我正在尝试添加一个唯一的ID字段,这就是我昨天的帖子.

所以,问题是:MySql范围之外的2000万行?如果没有,我是否缺少一个索引或其他一些有助于更好地使用这2000万行的设置?我可以在所有列上放置索引并使其超快吗?

一如既往,提前谢谢......

以下是规格:

我的电脑是XP,运行WAMPSERVER,Win32 NTFS,Intel Duo Core,T9300 @ 2.50GHz,1.17 GHz,1.98 GB或RAM

DB:1表,2000万行表的大小是:数据4.4 Gigs,Indexes 1.3 Gigs,Total 5.8 Gigs

索引在"BUSINESS NAME"和"STATE"字段中设置

表字段是这样的:

`BUSINESS NAME` TEXT NOT NULL, 
`ADDRESS` TEXT NOT NULL, 
`CITY` TEXT NOT NULL, 
`STATE` TEXT NOT NULL, 
`ZIP CODE` TEXT NOT NULL, 
`COUNTY` TEXT NOT NULL, 
`WEB ADDRESS` TEXT NOT NULL, 
`PHONE NUMBER` TEXT NOT NULL, 
`FAX NUMBER` TEXT NOT NULL, 
`CONTACT NAME` TEXT NOT NULL, 
`TITLE` …
Run Code Online (Sandbox Code Playgroud)

mysql wamp phpmyadmin

8
推荐指数
1
解决办法
8983
查看次数

Google Analytics(分析) - 我可以将脚本放入页脚吗?

我想将谷歌分析添加到我们的网站,并阅读了一些有关脚本标记放置位置的相互矛盾的信息.

Google表示要将其放在收尾</ head>标记之前:http: //code.google.com/apis/analytics/docs/tracking/asyncTracking.html

我们的网站设计方式,这意味着对每个页面进行编辑.如果我需要这样做,这不是什么大不了的事,但是,我们的网站也使用页眉和页脚包含文件.

这些页眉和页脚文件中包含html代码,一旦页面加载就会落在<body>and </body>标签内.

将脚本添加到页眉或页脚文件会更容易.我只是将它粘贴在那里,它将在每个页面上提供代码.

我的问题是:我可以这样做吗?我可以将脚本片段移动到页脚包含文件中,即使它不是</head>谷歌建议的标签之前吗?

如果我这样做,我会问问题吗?

谢谢!!

javascript php google-analytics

8
推荐指数
1
解决办法
2万
查看次数

CSS/Javascript 鼠标悬停弹出框

我有一个带有 javascript/css 内容框的表格单元格,它会在鼠标悬停时弹出。

页面上有 20 个单元格。一切正常,当您将鼠标悬停在产品链接上时,您会看到内容框。但是,我想在用户可以选择的内容框中放置一个 LINK。因此,弹出框必须保持足够长的时间,以便用户将鼠标悬停在鼠标上以单击链接。

真的,我希望 OnMouseOver 保持打开状态,直到一两秒过去和/或用户 OnMouseOver 的另一个单元格。

我遇到的问题是弹出框没有保持打开状态(由于 OnMouseOut)来单击链接。如果我关闭 OnMouseOut(我尝试过),那么所有弹出框都会保持打开状态,所以这也不起作用。

我的 CSS 看起来像这样:

<style type="text/css" title="">
    .NameHighlights         {position:relative; }
    .NameHighlights div     {display: none;}
    .NameHighlightsHover    {position:relative;}
    .NameHighlightsHover div {display:block;position:absolute;width: 15em;top:1.3em;*top:20px;left:70px;z-index:1000;}
</style>
Run Code Online (Sandbox Code Playgroud)

和 html:

<td>
    <span class="NameHighlights" onMouseOver="javascript:this.className='NameHighlightsHover'" onMouseOut="javascript:this.className='NameHighlights'">
    <a href="product link is here">Product 1</a>
           <div>
            # of Votes:  123<br>
            % Liked<br>
            <a href="product review link>See User reviews</a>
            </div>
    </span>
</td>
Run Code Online (Sandbox Code Playgroud)

那么,如何让弹出框保持打开足够长的时间以单击链接,但如果另一个内容框被激活,它又会消失?

提前致谢。

html javascript css mouseover

5
推荐指数
1
解决办法
2万
查看次数

mysql数据库上所有索引的大小

我的服务器上有6个数据库。

在phpmyadmin中,我可以查看组成数据库的表的列表,并查看诸如记录数,表名,表类型等内容。它还显示了大小和总大小。一个数据库的总大小为5个演出和80个不同的表。

我想知道这5个演出中有多少与我的索引有关。我可以单击表格并在其中查看详细信息。从理论上讲,如果我做了80次,对每个表一次,然后加起来,我将得到答案。

有没有办法(在phpmyadmin或SSH中)获得单个mysql表的组合索引有多少空间的答案?如果我能看到一个表的列表和总结,那就更好了。

提前致谢。

mysql indexing ssh

5
推荐指数
1
解决办法
1470
查看次数

简单的Javascript代码行

在我们的大多数页面上都有这行代码,我正在试图找出它的用途以及是否可以删除它.

它看起来像这样:

<script type="text/javascript">
  /*<![CDATA[*/
  if(top!=self){top.location.replace(self.location.href);}
  /*]]>*/
</script>
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一个愚蠢的问题,但是这个剧本试图说的是什么.这可能与登录功能有关吗?

提前致谢

javascript

4
推荐指数
1
解决办法
79
查看次数

Php clean双击破坏str_replace

我正在使用php来清除在url slug中使用的名称:,其中$ title可能如下所示:"这是标题"或"这是标题和副标题"

上面的例子我想分别改为"this-is-the-title"和"this-is-the-title-subtitle".所以,我做了这个代码......

<?php 
$input1 = str_replace(" ","-",strtolower($title)); 
$output1 = preg_replace('/[^A-Za-z0-9-]/', '', $input1); 
$output2 = str_replace("--","-",$output1); 
echo $output2; 
?>
Run Code Online (Sandbox Code Playgroud)

它运行良好,清除所有非字母数字,用破折号替换空格并使所有内容都小写.

但是,在某些情况下,它会返回双击("Title&More"变为("title - more").它应该是"title-more".我知道为什么双击,但我可以'似乎要把它清理干净.

我为$ output2添加了代码行,但由于某种原因它似乎没有工作.经过大量的反复试验,我感到很茫然.

谢谢...

php mysql

2
推荐指数
1
解决办法
2473
查看次数

升级 PHP - 需要删除 get_magic_quotes_gpc

我们正在从 php 5.3 升级到 5.4,它不向后兼容“get_magic_quotes_gpc”。我知道代码仍然可以工作,但每次都会返回一个 FALSE。

然而,我认为现在是时候从我们的代码中删除它了。

这是一个典型的例子:

     $product_id = "0";
        if (isset($HTTP_GET_VARS["id"])) {
          $rid = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS["id"] : addslashes($HTTP_GET_VARS["id"]);
        }

       //then $product_id gets used all over the place in many different queries
Run Code Online (Sandbox Code Playgroud)

我一直在研究如何解决这个问题,这就是我想到的:

    $rid = "0";
    if (isset($HTTP_GET_VARS["id"])) {
    $rid = addslashes($HTTP_GET_VARS["id"]);
    }
Run Code Online (Sandbox Code Playgroud)

我有点不知所措了。我知道这一切都与 SQL 注入等有关。我的解决方案合理/可接受吗?

提前致谢。

<<<<编辑-附加信息>>>>

感谢您的回复。实际上,我们大约 18 个月前进行了一系列到 PDO 的转换(主要是由于 stackoverflow 上的此类建议:)

所以,我可能有一些多余的、毫无意义的代码。下面是我上面发布的从 URL 获取变量的代码下面发生的情况的完整图片。

您会看到,曾经存在的 (get_magic_quotes_gpc) 现在已被注释掉并被 (addslashes) 取代。但该变量会传递给 PDO 查询。

$product_id = "0";
if (isset($HTTP_GET_VARS["id"])) {
  //$product_id = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS["id"] : addslashes($HTTP_GET_VARS["id"]); …
Run Code Online (Sandbox Code Playgroud)

php mysql sql-injection addslashes

2
推荐指数
1
解决办法
7335
查看次数

PHP身份验证 - 成员区域与公共页面上的额外内容

我正在尝试为开发中的站点考虑我的用户身份验证系统,并已阅读堆栈溢出和其他地方的许多帖子以了解我的想法.我找到了几个选项,我想知道这个看起来是不错的起点:

http://php.about.com/od/finishedphp1/ss/php_login_code_6.htm

它似乎加密密码,避免一些明显的陷阱.

此外,也许是一个愚蠢的问题,但我想使用身份验证有两个原因:1.在其他公共页面上为用户提供一些额外的功能.(想一想页面顶部的"Hello [username]").
2.还提供用户访问私人页面的权限.

这两种类型的应用程序(登录=在公共页面上添加的东西而不是登录=访问私有页面)依赖于相同的身份验证,对吧?

换句话说,无论我是想做其中一个还是两个都不应该影响我对身份验证的看法,对吗?

如果我通过使用about.com教程来解决问题,请告诉我....

提前致谢.

关注编辑:好的,所以about.com教程有一些漏洞.我发现下面有一个更完整的系统似乎使用SHA1加密.这也有新用户的电子邮件验证和一些其他不错的功能.乍一看,这看起来像是一条可靠的路线吗?

http://www.unlimitedtree.com/topic/1503-tutadvanced-login-member-system-php-tutorial/

php mysql authentication

0
推荐指数
1
解决办法
150
查看次数