这是更新的问题:
当前查询正在执行以下操作:
$sql1 = "TRUNCATE TABLE fubar";
$sql2 = "CREATE TEMPORARY TABLE IF NOT EXISTS fubar SELECT id, name FROM barfu";
Run Code Online (Sandbox Code Playgroud)
第一次运行包含此方法的方法时,它会在truncate上生成错误消息,因为该表尚不存在.
是我唯一的选择CREATE TABLE
,运行TRUNCATE TABLE
,然后填写表格?(3个单独的查询)
原来的问题是:
我一直很难在MySql中找出以下内容是否可行,而无需编写块sql:
CREATE TABLE fubar IF NOT EXISTS ELSE TRUNCATE TABLE fubar
Run Code Online (Sandbox Code Playgroud)
如果我在create table之前单独运行truncate,并且该表不存在,那么我会收到一条错误消息.我试图消除该错误消息,而不必添加任何更多的查询.
此代码将使用PHP执行.
如果我有一个查询,
DELETE FROM table WHERE datetime_field < '2008-01-01 00:00:00'
Run Code Online (Sandbox Code Playgroud)
确实具有datetime_field
列索引的帮助?即,索引仅在使用相等(或不等式)测试时有用,或者在进行有序比较时是否有用?
(更好地执行此查询的建议,无需重新创建表,也可以!)
我们正在计划php脚本与rails服务器上的ruby之间的交互,反之亦然.
每当我从php脚本卷曲发布数据时,在rails服务器通知显示 - "Can't verify CSRF token authenticity"
.
我在传递authenticity_token
参数.我们需要如何在rails服务器上以安全的方式使用此令牌.
<?php
class active_merchant{
private $endpoint_url; // server address or url where data is to be posted.
private $params; // form fields
private $fields_count; // count of fields in credit card
public function __construct(){
$this->endpoint_url = "http://localhost:8080/activemerchant/index";
$token = md5('random');
$this->params = array('name'=>'test','authenticity_token'=>$token);
}
/* function curl_post
makes a curl post to the end point url
global variables
*/
public function curl_post(){
try{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->endpoint_url); …
Run Code Online (Sandbox Code Playgroud) 我有Yii2高级模板,我想为我的前端视图设置翻译,这是我做的:
frontend/config/main.php:
'sourceLanguage'=>'en-US',
'language'=>'en-US',
'components' => [
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@common/messages',
'sourceLanguage' => 'en-US',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
],
]
Run Code Online (Sandbox Code Playgroud)
然后我加入i18n.php
了common/config:
<?php
return [
'sourcePath' => __DIR__. '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR,
'languages' => ['fr-FR','en-US'], //Add languages to the array for the language files to be generated.
'translator' => 'Yii::t',
'sort' => …
Run Code Online (Sandbox Code Playgroud) 我试过下面的JS:
var start = new Date("25-05-2016");
var finish = new Date("31-05-2016");
var dayMilliseconds = 1000 * 60 * 60 * 24;
var weekendDays = 0;
while (start <= finish) {
var day = start.getDay()
if (day == 0) {
weekendDays++;
}
start = new Date(+start + dayMilliseconds);
}
alert(weekendDays);
Run Code Online (Sandbox Code Playgroud)
但是,它给出了错误的输出。
我需要获得两个日期之间星期日的总数。
为了隐藏(但保留功能)文件对话框中丑陋的默认输入类型文件按钮,我使用了以下机制:
HTML:
<label for="file-input">
<i class="fa fa-edit"></i> <!-- acts as file input on click-->
</label>
<input type="file" id="file-input" />
Run Code Online (Sandbox Code Playgroud)
CSS:
#file-input {
display: none; //hide the file input
}
Run Code Online (Sandbox Code Playgroud)
这符合预期:我单击 font Awesome 编辑图标,然后弹出文件对话框。
但是,当我使用按钮时,它会停止工作。单击按钮时没有看到文件对话框:
<label for="file-input">
<button type="button">Upload file</button> <!-- not working-->
</label>
<input type="file" id="file-input" />
Run Code Online (Sandbox Code Playgroud) 我有一个表MySQL
有3个字段,我想强制两个字段之间的唯一性.这是表格DDL
:
CREATE TABLE `CLIENT_NAMES` (
`ID` int(11) NOT NULL auto_increment,
`CLIENT_NAME` varchar(500) NOT NULL,
`OWNER_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
该ID
字段是代理键(此表正在加载ETL).该CLIENT_NAME
字段包含客户端名称.id OWNER_ID
是指示客户所有者.
我以为我可以用一个唯一索引执行本CLIENT_NAME
和OWNER_ID
,
ALTER TABLE `DW`.`CLIENT_NAMES`
ADD UNIQUE INDEX enforce_unique_idx(`CLIENT_NAME`, `OWNER_ID`);
Run Code Online (Sandbox Code Playgroud)
但是MySQL给了我一个错误:
执行SQL命令以更新表时出错.指定密钥太长; 最大密钥长度为765字节(错误1071)
其他人有什么想法吗?
它显示当前时间作为验证工作的默认时间,但是,我想要自定义默认时间.
这是我的代码:
<?= $form->field($model, 'e_start_time')->widget(TimePicker::className(),
[
'readonly' => true,
'pluginOptions' => [
'minuteStep' => 5,
'showMeridian' => true,
],
'options'=>[
'class'=>'form-control',
],
]); ?>
Run Code Online (Sandbox Code Playgroud) 我从一个MySQL SELECT
涉及a 的查询得到了奇怪的结果LEFT JOIN
,我无法理解我的理解LEFT JOIN
是错误的还是我看到了一个真正奇怪的行为.
我有两个表有多对一关系的表:对于每个记录中table 1
有0个或更多记录table 2
.我想选择表1中的所有记录,其中的列计算表2中相关记录的数量.据我所知,LEFT JOIN
应始终返回LEFT
语句一侧的所有记录.
这是一个展示问题的测试数据库:
CREATE DATABASE Test;
USE Test;
CREATE TABLE Dates (
dateID INT UNSIGNED NOT NULL AUTO_INCREMENT,
date DATE NOT NULL,
UNIQUE KEY (dateID)
) TYPE=MyISAM;
CREATE TABLE Slots (
slotID INT UNSIGNED NOT NULL AUTO_INCREMENT,
dateID INT UNSIGNED NOT NULL,
UNIQUE KEY (slotID)
) TYPE=MyISAM;
INSERT INTO Dates (date) VALUES ('2008-10-12'),('2008-10-13'),('2008-10-14');
INSERT INTO Slots (dateID) VALUES (3); …
Run Code Online (Sandbox Code Playgroud) Yii框架工作我放在 UserFrom.php
root/models文件夹代码中是下面的
<?
namespace app\models;
use yii\base\Model;
class UserForm extends Model
{
public $name;
public $email;
public function rules()
{
return[[['name','email'],'required'],
['email','email'],]
}
}
?>
Run Code Online (Sandbox Code Playgroud)
并修改root/frontend/controllers/ Sitecontroller.php
文件.添加以下代码
public function actionUser()
{
$model=new UserForm;
if($model->load(Yii::$app->request->post()) && $model->valideate())
{
}
else
{
return $this->render('userForm',['model'=>$model] );
}
}
Run Code Online (Sandbox Code Playgroud)
然后最后在root/views/site/userForm.php
其代码中添加新文件
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form=ActiveForm::begin();?>
<?php $form->field($model,'name'); ?>
<?php $form->field($model,'email'); ?>
<?php Html::submitButton('Submit',['class'=>'btn btn-success']);
Run Code Online (Sandbox Code Playgroud)
如果我打开网址我收到错误网址= http://localhost/yiicomm/frontend/web/index.php?r =网站/用户
PHP致命错误 - yii\base\ErrorException未找到类'frontend\controllers\UserForm'.我觉得我正确地放置但得到错误.我的代码有什么问题
我参考了下面给出的链接
Yii2 htaccess - 如何隐藏前端/ web和后端/ web完全
从yii2中的前端和后端删除web文件夹后,从url中删除index.php
但是,我没有得到输出
显示在URL下方
本地主机/ yii2advance /后端/网络/的index.php?R =站点%2Flogin
本地主机/ yii2advance /前端/网络/的index.php?R =站点%2Flogin
在上面的网址我删除/web/index.php
了两个frontend
和backend
我得到的URL就像
本地主机/ yii2advance /后端/网站/登录
本地主机/ yii2advance /前端/网站/登录
这是表1
id1 Name
------------
1 value1
2 value2
Run Code Online (Sandbox Code Playgroud)
这是表2
id2 Name id1
---------------------
1 value1 2
2 value2 1
Run Code Online (Sandbox Code Playgroud)
这是表3
id3 Name id2
---------------------
1 value1 2
2 value2 1
Run Code Online (Sandbox Code Playgroud)
这是表4
id4 Name id3
---------------------
1 value1 2
2 value2 1
Run Code Online (Sandbox Code Playgroud)
我想用模型连接 Yii2中的上述 4 个表
select * from table1
left join table2 on table2.id2 = table1.id1
left join table3 on table2.id3 = table1.id2
left join table4 on table2.id4 = table1.id3
Run Code Online (Sandbox Code Playgroud) 我试试这个
<?php
$startdate = '2016-07-15';
$enddate = '2016-07-17';
$sundays = [];
$startweek=date("W",strtotime($startdate));
$endweek=date("W",strtotime($enddate));
$year=date("Y",strtotime($startdate));
for($i=$startweek;$i<=$endweek;$i++) {
$result=$this->getWeek($i,$year);
if($result>$startdate && $result<$enddate) {
$sundays[] = $result;
}
}
print_r($sundays);
public function getWeek($week, $year)
{
$dto = new \DateTime();
$result = $dto->setISODate($year, $week, 0)->format('Y-m-d');
return $result;
}
?>
Run Code Online (Sandbox Code Playgroud)
这个返回空白数组.但在两个日期之间2016-07-17
是星期天.
我输出为 2016-07-17
我在这里提到这个 但是在这个链接中返回输出为星期日没有日期.