mysql_real_query
和mysql_query
有什么区别?我做了一个快速的谷歌搜索,但找不到显示两者之间的区别的任何链接。mysql_real_query vs mysql_query
回答
mysql_real_query()在PHP中不存在。但是,mysqli_real_query()存在。
根据官方的MySQL手册(该C API):http://dev.mysql.com/doc/refman/5.0/en/mysql-real-query.html
的mysql_query()不能被用于包含二进制数据的语句;您必须改用mysql_real_query()。 (二进制数据可能包含“\ 0”字符,其中mysql_query()将解释为语句字符串的结尾。)另外,mysql_real_query()比mysql_query()更快,因为它不会在语句字符串上调用strlen 。
关于你的第二个问题,插入多条记录的最好的方法是创建具有多个值的INSERT查询:
INSERT INTO table (col1, col2) VALUES (1, 1), (2,2), (3,3)
等。 这将在1个操作中插入所有新行,因此它应该比运行3个查询更快,每行一个。 PS:你应该考虑使用支持预备语句的扩展,比如MySQLi(注意i)或更好的PDO。 不仅准备好的语句更安全(如果您正确使用它们,它们对于SQL注入100%安全),还可以让您执行类似于本页中示例中所示的操作:http://fr2.php.net/manual/en/pdo.prepare.php(可以使用INSERT当然也包括查询)。啊,PDO也是面向对象的,这很好:)
我编辑它,建议使用准备好的语句,它可以用来插入许多行并且非常高效(如果将所有查询放入事务中,它甚至更快)。而PDO对于其他许多事情来说更好。 – Qualcuno
有没有官方的PHP函数mysql_real_query
的区别仅仅是在C API。一个采用C风格的字符串,另一个采用缓冲区和长度属性以允许NUL字节。 PHP内部使用mysql_real_query
。
不应该最后一句是“PHP内部使用libmysql的'mysql_real_query'的C版本”? – Pacerier
Insert into table1 (a,b,c) VALUES (1,2,3),(1,2,4),(3,4,5)
这将在table1中添加三个新行,它们应该具有列a,b和c(可能还有其他具有默认值或可以为null的列)。
有人可以告诉我为什么我被评价了吗?在原来的帖子里有两个问题,其中我回答了第二个问题。 –
- 1. $ result = mysql_query()
- 2. 中的mysql_query
- 3. mysql_query where语句
- 4. mysql_query返回值
- 5. PHP寻呼MYSQL_QUERY
- 6. php返回mysql_query
- 7. mysql_query更新
- 8. 更改的mysql_query
- 9. 的mysql_query到PDO
- 10. MYSQL_QUERY错误
- 11. mysql_query()很慢
- 12. PHP mysql_query错误
- 13. $ result mysql_query()困难
- 14. mysql_query和embarcadero C++
- 15. 使用mysql_query和mysql_fetch_array
- 16. 访问mysql_query结果
- 17. mysql_query返回空值
- 18. mysql_fetch_array()和mysql_query()问题
- 19. laravel 5中的mysql_query
- 20. Wordpress不执行mysql_query()
- 21. mysql_query求和结果
- 22. PHP的mysql_query中PDO
- 23. PHP的mysql_query /修改
- 24. 捕捉mysql_query错误
- 25. PHP - 太多的mysql_query(“SELECT ..”)..?
- 26. mysql_query(“ROLLBACK”);不起作用
- 27. 的mysql_query不返回数据
- 28. 的sprintf()对战的mysql_query()
- 29. mysql_query重复密钥更新
- 30. 的mysql_query在while循环
mysql_real_query是否存在? –
@Jon no ...它不是 – genesis
@Jon:不知道PHP,但它存在于libmysqlclient中。 –