相关疑难解决方法(0)

PDO支持多个查询(PDO_MYSQL,PDO_MYSQLND)

我知道PDO不支持在一个语句中执行多个查询.我一直在谷歌,发现很少有关于PDO_MYSQL和PDO_MYSQLND的帖子.

PDO_MySQL是一个比任何其他传统MySQL应用程序更危险的应用程序.传统的MySQL只允许一个SQL查询.在PDO_MySQL中没有这样的限制,但是您可能会注入多个查询.

From:使用PDO和Zend Framework防止SQL注入(2010年6月;作者Julian)

似乎PDO_MYSQL和PDO_MYSQLND确实支持多个查询,但我无法找到有关它们的更多信息.这些项目是否已停止?现在有没有办法使用PDO运行多个查询.

php mysql pdo

96
推荐指数
3
解决办法
10万
查看次数

如何使用php导入mysql数据库中的.sql文件

如何使用php导入mysql数据库中的.sql文件

我怎么能这样做,请帮我解决这个问题谢谢

此代码显示此错误..

There was an error during import. Please make sure the import file is saved in the same folder as this script and check your values:

MySQL Database Name:    test
MySQL User Name:    root
MySQL Password: NOTSHOWN
MySQL Host Name:    localhost
MySQL Import Filename:  dbbackupmember.sql
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码

<?php
//ENTER THE RELEVANT INFO BELOW
$mysqlDatabaseName ='test';
$mysqlUserName ='root';
$mysqlPassword ='';
$mysqlHostName ='localhost';
$mysqlImportFilename ='dbbackupmember.sql';
//DONT EDIT BELOW THIS LINE
//Export the database and output the status to the page
$command='mysql …
Run Code Online (Sandbox Code Playgroud)

php mysql

59
推荐指数
5
解决办法
15万
查看次数

在PHP中运行MySQL*.sql文件

*.sql在创建新的网站数据库时使用了两个文件.第一个文件创建所有表.第二个文件填充一些默认记录.我想从PHP执行这些文件.我也使用Zend_Framework,如果这将有助于实现这一目标.

附加信息

  1. 我没有控制台访问权限
  2. 我正在尝试从我们的应用程序中自动生成网站.

使用shell_exec()......

$command = 'mysql'
        . ' --host=' . $vals['db_host']
        . ' --user=' . $vals['db_user']
        . ' --password=' . $vals['db_pass']
        . ' --database=' . $vals['db_name']
        . ' --execute="SOURCE ' . $script_path
;
$output1 = shell_exec($command . '/site_db.sql"');
$output2 = shell_exec($command . '/site_structure.sql"');
Run Code Online (Sandbox Code Playgroud)

...我从来没有得到有用的输出,但在另一个线程上遵循一些建议,最后让它全部工作.我切换到命令的格式,而不是执行文件.--option=value--execute="SOURCE ..."<

此外,我从来没有得到shell_exec()和和之间的差异的良好解释exec().

php mysql scripting zend-framework

46
推荐指数
6
解决办法
9万
查看次数

最佳实践:用PHP导入mySQL文件; 拆分查询

我有一种情况,我必须更新共享主机提供商的网站.该网站有一个CMS.使用FTP上传CMS的文件非常简单.

我还必须导入一个大的(相对于PHP脚本的限制)数据库文件(大约2-3 MB未压缩).Mysql因外部访问而关闭,因此我必须使用FTP上传文件,并启动PHP脚本进行导入.遗憾的是,我无法访问mysql命令行函数,所以我必须使用本机PHP解析和查询它.我也不能使用LOAD DATA INFILE.我也不能像phpMyAdmin一样使用任何一种交互式前端,它需要以自动化的方式运行.我也不能用mysqli_multi_query().

有没有人知道或者有一个已编码的简单解决方案,可以将这样的文件可靠地拆分成单个查询(可能有多行语句)并运行查询.我想避免自己开始摆弄它,因为我可能遇到很多问题(如何检测字段分隔符是否是数据的一部分;如何处理备忘录字段中的换行符;等等上).有必须是这个现成的解决方案.

php mysql

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

PHP:一个mysql_query语句中的多个SQL查询

所以我有一个需要使用mysql_query()加载的SQL转储文件.不幸的是,用它执行多个查询是不可能的.

- >不能假设安装了mysql命令行客户端(mysql --help) - 用于直接加载SQL文件

- >不能假设安装了mysqli扩展

/* contents of dump.sql, including comments */
DELETE FROM t3 WHERE body = 'some text; with semicolons; scattered; throughout';
DELETE FROM t2 WHERE name = 'hello';
DELETE FROM t1 WHERE id = 1;
Run Code Online (Sandbox Code Playgroud)

下面的explode()不起作用,因为某些转储内容的值包含分号.

$sql = explode(';', file_get_contents('dump.sql'));
foreach ($sql as $key => $val) {
    mysql_query($val);
}
Run Code Online (Sandbox Code Playgroud)

在不修改转储文件的情况下加载SQL的最佳方法是什么?

php mysql sql

9
推荐指数
2
解决办法
4万
查看次数

是否可以从另一个sql脚本中的存储过程调用sql脚本?

我想用.从存储过程中调用sql脚本就像这样...

delimiter ///
create procedure append_procedure()
BEGIN
\. test.sql;    
END; ///
delimiter ;
Run Code Online (Sandbox Code Playgroud)

我得到了"未能打开'test.sql;' "我以这种方式运行时出错.我也试过了!但后来我得到了一个拒绝许可的错误.但是,我无法消除; 或者整件事都破了.有没有解决的办法?

我究竟做错了什么?

mysql scripting stored-procedures

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

使用Python mysqldb模块无法使MySQL源查询工作

我有以下几行代码:

sql = "source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql"
cursor.execute (sql)
Run Code Online (Sandbox Code Playgroud)

当我执行我的程序时,我收到以下错误:

错误1064:您的SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在第1行'source C:\ My Dropbox\workspace\projects\hosted_inv\create_site_db.sql'附近使用正确的语法

现在我可以将以下内容复制并发送到mysql作为查询:

source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql
Run Code Online (Sandbox Code Playgroud)

它完美无缺.当我检查查询日志以查找我的脚本执行的查询时,它显示我的查询如下:

source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql
Run Code Online (Sandbox Code Playgroud)

但是,当我手动粘贴并执行时,整个create_site_db.sql在查询日志中展开,并显示该文件中的所有sql查询.

我在这里错过了mysqldb如何查询的内容吗?我遇到了限制吗?我的目标是运行一个sql脚本来创建模式结构,但我不想在shell进程中调用mysql来获取sql文件.

有什么想法吗?谢谢!

python mysql scripting

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

php mysqli多查询异步?

$databases = array();
$path = '/Path/To/Directory';
$main_link = mysqli_connect('localhost', 'USERNAME', 'PASSWORD');
$files = scandir($path);
$ignore_files = array();

foreach($files as $file)
{
    if (!in_array($file, $ignore_files))
    {
        $database = substr($file, 0, strpos($file,'.'));
        $databases[] = $database;
        mysqli_query($main_link, "DROP DATABASE IF EXISTS $database") or die ("$database 1" . mysqli_error($main_link));
        mysqli_query($main_link, "CREATE DATABASE $database") or die ("$database 2" .mysqli_error($main_link));
        $db_link = mysqli_connect('localhost', 'USERNAME', 'PASSWORD', $database);
        //In here a whole database dump with scheam + data is executed. 
        mysqli_multi_query($db_link, file_get_contents($path.'/'.$file)) or die ("$database 4" .mysqli_error($db_link));        
    } …
Run Code Online (Sandbox Code Playgroud)

php mysqli

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

MySQL多CREATE TABLE语法有帮助吗?

我正在尝试编写一个创建多个表的MySQL脚本.我有:

CREATE TABLE `DataBase1`.`tbl_this`(
...
);
CREATE TABLE `DataBase1`.`tbl_that`(
...
);
... (14 more) ...
Run Code Online (Sandbox Code Playgroud)

但是,只执行第一个CREATE TABLE语句.我没有语法错误.嗯,我错过了MSSQL相当于GO?我在这做错了什么; 我怎么让这个宝宝跑完所有的桌子?

mysql scripting create-table

3
推荐指数
2
解决办法
2223
查看次数

通过php导入sql

这可能是显而易见的,但我已经通过phpmyadmin将数据库导出到.sql文件.我试图通过PHP脚本将文件导入另一个数据库,但我无法弄清楚如何做到这一点.我确信这很容易,因为我可以通过phpmyadmin运行查询轻松完成同样的事情.有什么建议?

php mysql import

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