Tag: MySQL

何时在MySQL中使用单引号,双引号和反引号

我正在尝试学习编写查询的最佳方法。 我也明白一致的重要性。 到现在为止,我没有任何真正的想法,随机使用单引号,双引号和反引号。 例: $query = 'INSERT INTO table (id, col1, col2) VALUES (NULL, val1, val2)'; 另外,在上面的例子中,考虑"table," "col[n]," and "val[n]"可能是variables。 这是什么标准? 你是做什么? 我已经在这里阅读了大约20分钟的类似问题的答案,但是似乎这个问题没有明确的答案。

UTF-8一路通过

我正在build立一个新的服务器,并希望在我的web应用程序中完全支持UTF-8。 过去我在现有的服务器上尝试过,似乎总是不得不回退到ISO-8859-1。 我到底需要设置编码/字符集? 我知道我需要configurationApache,MySQL和PHP来做到这一点 – 是否有我可以遵循的标准清单,或者可能排除发生不匹配的问题? 这是一个新的Linux服务器,运行MySQL 5,PHP 5和Apache 2。

mysqli_fetch_array()/ mysqli_fetch_assoc()/ mysqli_fetch_row()期望参数1是资源或mysqli_result,布尔给定

我试图从MySQL表中select数据,但是我得到以下错误消息之一: mysql_fetch_array()期望参数1是资源,布尔给定 要么 mysqli_fetch_array()期望参数1是mysqli_result,布尔给定 这是我的代码: $username = $_POST['username']; $password = $_POST['password']; $result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username'); while($row = mysql_fetch_array($result)) { echo $row['FirstName']; } 这同样适用于类似的代码 $result = mysqli_query($mysqli, 'SLECT …'); // mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given while( $row=mysqli_fetch_array($result) ) { … 和 $result = $mysqli->query($mysqli, 'SELCT …'); […]

为什么我不应该在PHP中使用mysql_ *函数?

为什么不应该使用mysql_*函数的技术原因是什么? (例如mysql_query() , mysql_connect()或mysql_real_escape_string() )? 为什么我应该使用别的东西,即使他们在我的网站上工作? 如果他们没有在我的网站上工作,为什么我会得到如Warning:mysql_connect()这样的错误:没有这样的文件或目录 ?

我怎样才能防止在PHP中的SQL注入?

如果用户input未经修改而插入到SQL查询中,则该应用程序易受SQL注入的影响 ,如下例所示: $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')"); 这是因为用户可以input类似的value'); DROP TABLE table;– value'); DROP TABLE table;– ,查询变成: INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;–') 可以做些什么来防止这种情况发生?

如何更改max_allowed_pa​​cket大小

我有我的MySQL数据库中的BLOB字段的问题 – 当上传大于大约1MB的文件时,我得到一个错误Packets larger than max_allowed_packet are not allowed. 这是我试过的: 在MySQL查询浏览器中,我运行了一个show variables like 'max_allowed_packet' ,它给了我1048576。 然后我执行查询set global max_allowed_packet=33554432后面show variables like 'max_allowed_packet' – 它给了我33554432按预期。 但是,当我重新启动MySQL服务器神奇地回到1048576.我在这里做错了什么? 奖金的问题,是否有可能压缩一个BLOB字段?

允许从任何IP地址远程访问MySQL数据库

我知道这个命令: GRANT ALL PRIVILEGES ON database.* TO 'user'@'yourremotehost' IDENTIFIED BY 'newpassword'; 但是,它只允许我授予一个特定的IP地址来访问这个远程MySQL数据库。 如果我想要它,以便任何远程主机可以访问这个MySQL数据库呢? 我怎么做? 基本上我公开这个数据库,所以每个人都可以访问它。

如何查看MySQL数据库/表/列是什么字符集?

什么是(默认)字符集: MySQL数据库 MySQL表 MySQL列

MySQL与Node.js

我刚开始进入Node.js 我来自PHP的背景,所以我很习惯使用MySQL来满足我所有的数据库需求。 我如何使用MySQL与Node.js?

如何解决:使用池时,“没有找到合适的驱动程序jdbc:mysql:// localhost / dbname”错误?

我试图创建一个连接到我的数据库,当我把测试我的代码使用主要的方法,它可以无缝工作。 但是,尝试通过Tomcat 7访问它时,会失败,并显示错误: No suitable driver found for jdbc:mysql://localhost/dbname. 我正在使用池。 我把mysql连接器(5.1.15),dbcp(1.4)和pool(1.4.5)库放在WEB-INF / lib和.classpath中。 我正在使用Eclipse IDE。 我的数据库驱动程序的代码是: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.apache.tomcat.dbcp.dbcp.ConnectionFactory; import org.apache.tomcat.dbcp.dbcp.DriverManagerConnectionFactory; import org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory; import org.apache.tomcat.dbcp.dbcp.PoolingDriver; import org.apache.tomcat.dbcp.pool.impl.GenericObjectPool; public class DatabaseConnector { public static String DB_URI = "jdbc:mysql://localhost/dbname"; public static String DB_USER = "test"; public static String DB_PASS = "password"; // […]