就性能而言,以下哪一项是 PHP 的最佳 ORM?我也想在 Codeigniter 框架中使用它。我现在正在尝试 php-activerecord,它的表现还不错。我查看了 Doctrine2、DataMapper 之类的东西,但是在我构建一个大项目之前我无法谈论任何关于性能的信息(那时,改变主意为时已晚)。
有什么想法吗?
我使用 CodeIgniter 1.7 框架来制作我的网站。另一个团队为 iPhone 开发移动版本。所以另一个团队让我做一个 Web 服务来进行身份验证。他们说他们会寄给我:
POST REQUEST
Input : login , password, push_token
if failure authentification -> Output HTTP : error code 0
if success -> Output XML :
<DATA>
<User id='id_user' title='..' first_name='' last_name='' email='' postal='' country_id=''/>
</DATA>
Run Code Online (Sandbox Code Playgroud)
基本上我有这个认证功能:
function check_login($username="", $password="")
{
$username = $_POST['username'];
$password = $_POST['password'];
...
...
}
Run Code Online (Sandbox Code Playgroud)
我正在查看这篇文章Codeigniter web services,但我不明白它是如何工作的,因为我是 webservice 的新手。
我想为我存储在数据库中的产品创建更多 SEO 友好的 URL。
如何从 URL 获取 ProductName?
例如:
http://domain.com/ProductName
Run Code Online (Sandbox Code Playgroud)
其中 ProductName 不是 Controller。我需要从控制器验证 ProductName 并显示它。
我正在尝试学习如何从多个表中提取数据并将它们放入一个变量中并将它们返回给我的控制器。
我可以从这样的一张表中获取信息:
$this->db->select('first_name, last_name');
$this->db->from('people');
$this->db->where('first_name', $firstname);
$this->db->where('last_name', $lastname);
$result = $this->db->get();
Run Code Online (Sandbox Code Playgroud)
但我对如何从另一个表中获取数据并将它们与包含更多用户输入的其他变量进行匹配感到困惑。
我已经阅读了 CI 网站上的 Active Record 文档,但我发现唯一可能是我正在寻找的内容是 join() 查询,但我不知道如何使用它,这个例子没有帮助在网站上,因为我不明白这一点:
$this->db->join('comments', 'comments.id = blogs.id');
Run Code Online (Sandbox Code Playgroud)
“评论”是否意味着表格“评论”?如果您将一个变量与 comments.id 进行比较,您是否必须像这样在单引号之外包含该变量:'comments.id =' $blogid?
或者我可以这样做:从一张表中查询并将这些结果放入一个变量中,如下所示:
$result1 = $this->db->get();
Run Code Online (Sandbox Code Playgroud)
然后再次从另一个表中进行另一个查询并将其放入
$result2
Run Code Online (Sandbox Code Playgroud)
那我可以说: $query = $result1 + $result2;
那可能吗?
如果有人可以确认此信息/帮助我,我将不胜感激。谢谢
我怎样才能在单个 MySQL 查询中做这样的事情?
select `value_a`
from `table_1`
where `value_b` = (select `value_b` from `table_2` where `value_c` = `x`);
Run Code Online (Sandbox Code Playgroud)
我使用 CodeIgniter,所以我可以使用 Active Records。
我一直在尝试为最近移动的页面设置重定向。该页面最初位于http://example.com/foo/,但后来移至http://example.com/foo/bar/。
我在我的网站.htaccess文件中尝试了以下规则:
RedirectMatch 301 ^/foo/$ /foo/bar/
但是,转到 url 会http://example.com/foo/导致重定向到 url http://example.com/foo/bar/?/foo/。虽然 url 有效并且我想重定向到加载的页面,但我很想摆脱?/foo/url 末尾的额外内容。
这是我的完整 .htaccess:
RewriteEngine On
RewriteBase /
# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [R=301,L]
# allow access to certain directories in webroot
RewriteCond $1 !^(index\.php|robots\.txt|css/|lib/|js/|images/|^(.*)/images)
# gets rid of index.php
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# page redirects
RedirectMatch 301 ^/foo/$ /foo/bar/
Run Code Online (Sandbox Code Playgroud) 我有 Codeigniter 设置将前缀 kms_ 添加到我的活动记录查询中。但是,我正在尝试使用两个 ON 条件进行连接,并且它没有预先添加它们。
现在我必须像这样手动添加它们:
$this->db->join('site_items', 'kms_site_items.item_id = kms_items.id AND kms_site_items.site_id = 1', 'left');
Run Code Online (Sandbox Code Playgroud)
我可以用不同的方式写这个以便正确添加表前缀吗?
有没有办法让这样的事情工作:
$this->db->join('site_items', 'site_items.item_id = items.id AND site_items.site_id = 1', 'left');
Run Code Online (Sandbox Code Playgroud) 我在跑步
$this->db->query("SELECT `id` FROM $table WHERE $table.id ='$product_id'");
Run Code Online (Sandbox Code Playgroud)
那应该返回92但它返回下面为什么?
object(CI_DB_mysqli_result)#150 (8) { ["conn_id"]=> object(mysqli)#16 (18) { ["affected_rows"]=> int(1) ["client_info"]=> string(6) " 5.5.30" ["client_version"]=> int(50530) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"] => string(0) "" ["field_count"]=> int(1) ["host_info"]=> string(25) "Localhost via UNIX socket" ["info"]=> NULL ["insert_id"]= > int(0) ["server_info"]=> string(10) "5.5.31-cll" ["server_version"]=> int(50531) ["stat"]=> string(150) "正常运行时间:106781 个线程: 14 题: 30097132 慢查询: 13 Opens: 1937675 Flush tables: 1 Open tables:平均每秒 400 次查询:281.858" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(373292) ["warning_count"]= …
出于安全原因,我想在一页上加密我们的 url 参数并在另一页上解密。当我尝试这个时,就会发生不允许的字符错误。我也不想设置 $config['permitted_uri_chars']。根据这个。
请给我解决方案,我可以使用 url 加密参数,例如-
wwww.domain.com/controller_name/method_name/parameter1/parameter2
Run Code Online (Sandbox Code Playgroud)
我正在使用 like 来加密 url-
<a href="<?php echo site_url('C_Name/M_Name/'.$this->encrypt->encode($id)); ?>">Link</a>
Run Code Online (Sandbox Code Playgroud)
我正在使用 like 来解密 url-
echo $this->encrypt->decode($id)
Run Code Online (Sandbox Code Playgroud)
另一个问题是它的值是随机改变的。
请让我明白如何做到这一点。
谢谢。
抱歉,又是一个godaddy/codeigniter电子邮件问题。抱歉,如果这里有类似的回答帖子,但我找不到适合我的帖子。
我已将我的(工作)站点从本地移动到GoDaddy尝试各种设置后,我在电子邮件配置中有以下内容
$config['useragent'] = "CodeIgniter";
$config['mailpath'] = "/usr/sbin/sendmail"; // or "/usr/sbin/sendmail"
$config['protocol'] = "sendmail";
$config['smtp_host'] = "relay-hosting.secureserver.net";
$config['smtp_port'] = "25";
$config['smtp_user'] = 'myemail@mygodaddydomain.com';
$config['smtp_pass'] = 'mypassword';
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['newline'] = "\r\n";
$config['wordwrap'] = TRUE;
$config['crlf'] = "\r\n";
Run Code Online (Sandbox Code Playgroud)
与这里的绝大多数类似帖子不同,我的电子邮件似乎正在发送,因为如果我使用
echo $this->email->print_debugger();
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
Your message has been successfully sent using the following protocol: sendmail
User-Agent: CodeIgniter
Date: Wed, 12 Feb 2014 14:02:34 -0700
From: "me" <>
Return-Path: <>
To: email@gmail.com
Subject: =?utf-8?Q?Please_reset_your_password_at_CellKulture?=
Reply-To: "" …Run Code Online (Sandbox Code Playgroud) codeigniter ×10
php ×7
.htaccess ×1
activerecord ×1
email ×1
encryption ×1
mod-rewrite ×1
mysql ×1
orm ×1
performance ×1
redirect ×1
url ×1
web-services ×1