我经常使用MySQL,但我总是想知道它是如何工作的 - 当我得到一个肯定的结果时,数据存储在哪里?例如,我这样写:
$sql = "SELECT * FROM TABLE";
$result = mysql_query($sql);
while ($row = mysql_fetch_object($result)) {
echo $row->column_name;
}
Run Code Online (Sandbox Code Playgroud)
返回结果时,我假设它保存所有数据结果,或者它是否在片段中返回,只返回它所要求的位置,如$ row-> column_name?
或者,即使您只想在$ result中使用一列,它是否真的会返回每一行数据?
此外,如果我使用LIMIT进行分页,即使数据库已更新,它是否仍保留原始(旧)结果?
我安装了Apache for Windows.我买了CodeIgniter Professional并下载了他们的源代码.它说我应该把它的.htaccess放在网站的根文件夹中,所以我做了.我将基本URL设置为http://127.0.0.1/kids/,其中kids是网站的根文件夹.它显示主页很好.当我点击链接时,它总是给出404错误.它说,"在这台服务器上找不到请求的URL /index.php/welcome/cat/2." 我在目录中尝试了几种可能的.htaccess但没有成功.在.htaccess内,它指示:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|captcha|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
解释为什么它根本不起作用?我还检查了configs.php,看起来也没问题.config ['index_page']设置为空白.我删除了.htaccess文件但仍然存在同样的问题,除了它说"在此服务器上找不到请求的URL/kids/welcome/cat/2".
试图让它运转起来浪费了几个小时,我正在失去耐心.
以下是CodeIgniter Professional的说明:
"为了使CodeIgniter可以访问这些文件夹,你还需要在你的网站的根文件夹中创建一个小的.htaccess文件.这就是.htaccess文件的样子.它基本上包含所有文件和文件夹的指令可在网站上查看:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|captcha|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
如果您熟悉Apache中的mod_rewrite,您会注意到此规则表面上从任何目标的URL中删除了index.php.下面当你配置CodeIgniter(特别是config.php文件)时,你会明白为什么这是一个好主意.如果你不熟悉Apache中的mod_rewrite,请不要被这个文件吓到太多.基本上,.htaccess文件提出了一些规则,其中一个规则从所有URL中删除了index.php.文件中的其他规则允许使用您需要的各种其他文件夹(例如包含CSS,JavaScript,Captcha文件和图像的文件夹)."
我按照指示做了...把htaccess文件放在根文件夹中然后,它给出了404错误.如果我从根文件夹中删除htaccess文件,它会显示主页.如果我添加htaccess文件,则会出现404错误.我移动了htaccess,它没有做任何重新路由.显然,Apache理解htaccess,否则它不会显示404错误.
假设我开发了一个社交网站,我决定我希望应用程序的核心完全是REST.用户使用密码登录.现在,我的问题是每个请求都需要密码和登录对(假设您需要提供您的身份)在URL的末尾www.site.com/index.php?p=pass&l=login吗?在每次请求时我都会有点紧张.我知道我错过了一些东西......它不可能是因为任何人都可以窥探数据包并捕获密码并轻松登录.我认为在HTTPS中完成所有请求都没有意义(我读过它对资源的负担).
所以请填写我需要了解的缺失部分.
当它只涉及脚本的一小部分并且我尝试时,我不想"死()":
$result = mysql_query($sql) or echo("error with responses");
Run Code Online (Sandbox Code Playgroud)
但它产生了一个错误.我如何只是发出错误消息并继续执行脚本的其余部分,因为即使它无法连接,其余部分也不会受到影响.
readfile()表示它输出内容,但我希望将内容保存在变量中.我怎么做?我尝试了$ content = readfile("file.txt"),但这并不正确.
我想这样做:
$data=readfile("text.txt");
echo htmlentities($data);
Run Code Online (Sandbox Code Playgroud)
这应该让你知道我希望如何工作.
PHP在默认情况下使用"魔术引号",但它已经有很多瑕疵.我知道它将在下一个主要版本的PHP中禁用它.
虽然反对它的论据是有道理的,但我不明白为什么不只是使用HTML实体来代表引号而不是剥离和删除斜杠?毕竟,VAST的大部分mySQL用于输出到Web浏览器?
例如,' 用来代替',它根本不会影响数据库.
另一个问题,为什么PHP只能为每个版本的PHP设置配置<?php4或<?php5,以便为这些版本加载适当的解释器?
只是好奇.:)
如果我没有在Codeigniter的URL中提供值,它将显示一个PHP错误,说它缺少函数调用的参数.我根本不希望它显示出来.如果URL中没有参数,则应该重新路由到其索引函数.我该如何防止这种情况发生?
例如,www.example.com/profile/id/45
任何人都会像这样猜测并输入"www.example.com/profile/id"
会产生错误.我该如何预防呢?我试过,"如果(!isset($ id))"但它在达到该条件之前产生了错误.
我试图弄清楚如何在Excel中的表达式格式化结果.我写
=IF(C30 > B30, "You would save $" & Format(C30-B30, "Currency") & "!", "No savings")
Run Code Online (Sandbox Code Playgroud)
在单元格内,但它不起作用.简单地说,我希望在表达式中格式化货币.
怎么样?
可能重复:
PHP类方法中的前导下划线有什么用?
我认为这是非常具有描述性的...如果你看到一个以php下划线开头的函数是什么意思?我已经看过很多次了,但我还是不知道它是什么!它仍然有效,但从下划线开始看起来很奇怪,我怀疑它只是一个惯例,但我不知道它是什么.我不是在讨论双下划线函数(即__construct())而是单个下划线.
我最好的猜测是,这意味着它是你自己独特的功能,你想让别人知道吗?
在用HTML创建一个将转换为PDF的表单时,我才意识到没有为签名设计的实线.
据我所知,我不知道支持它的HTML标签.最接近的是HR,但我无法通过CSS将其移到底部.另一种选择是使用TD底边作为实心1px黑色,但它不传达任何语义.
如果我使用下划线,我会看到下划线之间的空隙很小.
有什么建议?
我写了这个简单的查询语句:
INSERT INTO merchants
('firstName','lastName')
VALUES
('Bob','Smith')
Run Code Online (Sandbox Code Playgroud)
听起来很简单,但我一直收到这个错误:
`#1064 - 你的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在''firstName','lastName'附近使用正确的语法.)第2行的VALUES('Bob','Smith')'
I am puzzled why it won't display the name. I expect to see the output, "Jeffrey" but it doesn't. I created an object with an argument to be passed to the constructor so I expected "JEFFREY" to be displayed but it didn't. I added the echo function in constructor to see if it output jeffrey and it didn't echo either. PHP didn't show any errors. What is that I am doing wrong?
class person {
public $name;
function __constructor($name)
{ …Run Code Online (Sandbox Code Playgroud)