基本上我想要的是以下代码的工作版本:
ALTER TABLE table_name
AUTO_INCREMENT =
(
SELECT
`AUTO_INCREMENT`
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'another_table_name'
);
Run Code Online (Sandbox Code Playgroud)
错误:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AUTO_INCREMENT =
Run Code Online (Sandbox Code Playgroud)
原因:
根据MySQL Doc:
只要服务器运行,InnoDB就会使用内存中的自动增量计数器.当服务器停止并重新启动时,InnoDB会重新初始化每个表的计数器,以便第一次INSERT到表中,如前所述.
这意味着每当我重新启动服务器时,我的auto_increment值都会设置为尽可能小的值.
我有一张叫做ticket另一张叫的桌子ticket_backup.它们都有一个id共享的列.ticket表格内的记录可供客户索取.当他们声称ticket我在里面插入记录ticket_backup然后我从ticket表中删除它们.截至今天,我56 thousand已经索赔(内部ticket_backup)和0票可用.如果我现在重新启动服务器并且不执行该操作ALTER TABLE,则我提供的第一张票将具有 …
在研究Database Seeder时,人们常常看到人们DB::table('my_table')->insert(['column' => 'value'])在Seeder课程中使用.我想知道这个明显的约定背后的原因,为什么我应该使用DB::*而不是MyModel::*执行这样的任务.
可能重复:
PHP创建一个没有fopen的文件
我想创建一个没有fopen函数的文件,因为它打开了文件.是否有可能或我别无选择,只能开火?我正在编写一个Checker类,它将确保某些文件存在并具有写入权限.如果一个文件不存在,我只想创建它.此类不会操纵任何文件内容.
我试图将数学表达式分解为碎片,我试图使用正则表达式/\([^)]+\)/来完成这个技巧(在这里找到).但是阅读这个答案,我明白这个正则表达式会搜索第一个右括号)来完成,在处理时给我带来麻烦,例如:
(2*x^2 + 5*x - (2*x - 3)^(1/2))/(1 + x)
^ ^ ^
START IGNORE FINISH
Run Code Online (Sandbox Code Playgroud)
因为我不是想出正则表达式真的很好,我知道如果我要处理这个用strpos,substr并且str_replace还是有不同的正则表达式适用于preg_match_all并得到正确的组括号?
注意:此函数将是递归的,以便求解内括号.
编辑:
在这种情况下我的预期输出:
$array = null;
$expression = '(2*x^2 + 5*x - (2*x - 3)^(1/2))/(1 + x)';
$expression = str_replace(' ', '', $expression);
preg_match_all('MAGIC EXPRESSION HERE', , $array);
print_r($array);
// Output
array(
[0] => (2*x^2+5*x-(2*x-3)^(1/2))
[1] => (1+x)
)
Run Code Online (Sandbox Code Playgroud)
谢谢.
我是jQuery和Ajax的新手,但我已经设法学习如何做Hello World,填充select标签等等...问题是,我不喜欢使用结构PHP.我学习的方法我必须使用$ .getJSON调用一些PHP文件,该文件必须"回显"我的结果.我想要的是能够调用一个实际上是一个带有某些方法的类的PHP文件,并且该方法的返回将是JavaScript将接收的而不仅仅是echo结果.
感谢您的关注.
Ps.:我在使用Amfphp的PHP-OOP和Flex + PHP方面有很多经验.我正在尝试构建不同版本的视图,我想重新使用Flex已经使用的类.
这是一个例子:
parseInt(50) > parseInt('a');
Run Code Online (Sandbox Code Playgroud)
在控制台上执行此操作时,它将返回false.我的原始代码看起来有点像这样:
variableB = parseInt(jQuery('some-element').html());
if(parseInt(variableA) > variableB)
// do something
else
// do something else
Run Code Online (Sandbox Code Playgroud)
有时some-element不会被填补,因此返回NaN.发生这种情况时,我确实希望else执行该块.我实际上得到了我的期望,但我只是想确保它确实打算以这种方式工作.
我有一个方法可以同时从PHP调用两个服务.由于Flex的多任务处理能力,我认为每个服务都在不同的线程中调用.
我的问题是:两个服务都从数据库返回一个对象数组.但第二个服务将提供一个DataGrid,它具有每个记录的处理程序.这个处理程序将比较两个Arrays中的那个,当Flex在完成第一个之前完成第二个时,我遇到了问题,因为处理程序试图将数据与空对象进行比较(PHP服务尚未响应).
有任何想法吗?
编辑:
在我发布这个问题的那天,有些人给了我一个惊人的想法,但遗憾的是他似乎删除了他的帖子,我不知道为什么.我坚持他的想法,我找到了一个符合我的设计模式的解决方案.
他告诉我把一个标志告诉我数据是否已经加载.所以这就是我现在正在做的事情:我称之为先服务; 我叫第二次服务;
在第一个服务的结果,我检查第二个服务上的标志,如果它是真的,这意味着它已经加载,所以我可以将我的数据存储在DataGrid中,以便可以调用处理程序.如果该标志为false,则表示尚未加载第二个数据,因此我将其存储在一个没有绑定到dataGrid的_temp DataProvider上,而不是存储在官方dataProvider中的数据.在这种情况下,当加载第二个数据时,会将侦听器事件分派给第一个服务,告诉他捕获_temp dataProvider并将其复制到官方dataProvider.
特别是,我喜欢这个解决方案,并没有打破Table Data Gateway的设计模式.
谢谢大家的帮助.
php ×5
actionscript ×1
alter-table ×1
apache-flex ×1
class ×1
convention ×1
file ×1
filesystems ×1
javascript ×1
jquery ×1
laravel ×1
laravel-5 ×1
laravel-5.1 ×1
methods ×1
mysql ×1
oop ×1
regex ×1
select ×1
sql ×1