mysql-PHP,MySQL请问这两行代码有什么区别?

问题描述

PHP,MySQL请问这两行代码有什么区别?

请问这两行代码有什么区别?我试了一下都可以运行成功。

 $query = "insert into books values (' ".$isbn." ', ' ".$author." ', ' ".$title." ', ' ".$price." ')";
$query = "insert into books values (' $isbn ', ' $author ', ' $title', ' $price ')";`

完整代码from PHP和MySQL Web开发(原书第4版):

 <html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <h1>Book-O-Rama Book Entry Result</h1>
        <?php
        //create short variable names
        $isbn=$_POST['isbn'];
        $author=$_POST['author'];
        $title=$_POST['title'];
        $price=$_POST['price'];

        if (!$isbn || !$author || !$title || !$price){
            echo "You have not entered all the required details. <br />". "Please go back and try again";
            exit;
        }
        if (!get_magic_quotes_gpc()){
            $isbn = addslashes($isbn);
            $author = addslashes($author);
            $title = addslashes($title);
            $price = doubleval($price);
        }
        @ $db = new mysqli('localhost', 'root', '123', 'mydb');

        if (mysqli_connect_errno()){
            echo "Error: Could not connect to database. Please try again later.";
            exit;
        }
        $query = "insert into books values (' ".$isbn." ', ' ".$author." ', ' ".$title." ', ' ".$price." ')";

        $result = $db->query($query);

        if ($result) {
            echo $db->affected_rows. "book inserted into database.";
        }  else {
                echo "An error has occurred. The item was not added.";
        }
        $db->close();
        ?>
    </body>
</html>

解决方案

2种都可以,在php中,双引号也会解析变量的
$query = "insert into books values (' $isbn ', ' $author ', ' $title', ' $price ')";
这个在php是比较特殊的一点,但为了比较好的习惯,一般会采用
$query = "insert into books values (' ".$isbn." ', ' ".$author." ', ' ".$title." ', ' ".$price." ')";
这个写法

解决方案二:

推荐第一种写法,第二种写法真的可以插入有效的数据?表示怀疑,就算可以也最好别用。

解决方案三:

没有使用框架?
$query = "insert into books values (' ".$isbn." ', ' ".$author." ', ' ".$title." ', ' ".$price." ')";
这里面的点是PHP的字符串连接符,但别一种写法我还真不知道。

解决方案四:

根据这个网页http://www.webdeveloper.com/forum/showthread.php?173976-Attemp-to-connect-to-DB-failed-Help!:
There is no reason to use the 'mysql improved functions' to accomplish this, just use the standard mysql_connect, mysql_select_db, and mysql_query() functions to accomplish it. Also, when using an INSERT INTO query, it's good practice to specifically name the fields.
PHP Code:
$query = "INSERT INTO books (isbn, author, title, price) VALUES ('$isbn', '$author', '$title', '$price')";

说明第二种写法也是对的。请问第一种写法为什么这样写?

解决方案五:

这2种方法都可以,但是第一种快一点也好点,推荐使用低一点

解决方案六:

两种都可以,因为"会解释$变量。

解决方案七:

效果一样的 但如果是数组的话 就用第一种方法 如果是单独一个变量就用第二种方法吧

解决方案八:

第一种是拼接字符串的形式,
第二种把变量嵌入字符串。

时间: 2024-10-31 06:57:16

mysql-PHP,MySQL请问这两行代码有什么区别?的相关文章

strlen-C语言 请问这两行代码是什么意思

问题描述 C语言 请问这两行代码是什么意思 for(int i = 0; i < strlen(charSet); i++) hash[charSet[i]] = 1; 下面是完整代码 // Created by www.runoob.com on 15/11/9. // Copyright ? 2015年 菜鸟教程. All rights reserved. // #include #include #include // 删除字符串中指定字母函数 char* deleteCharacters

c语言-C语言,请问这两行代码是什么意思

问题描述 C语言,请问这两行代码是什么意思 请问 else printf("^%-4c",ch+64);和 if(i%8 == 0) printf("n");这两句是什么意思 #include int main(void) { char ch; int i; for(i=1; (ch=getchar()) != EOF; i++) { if (ch >= ' ' || ch == 'n' || ch == 't') printf("%-5c"

请问:java代码通过io流怎么读取MySQL数据库生成jsp文件?谢谢!

问题描述 请问:java代码通过io流怎么读取MySQL数据库生成jsp文件?谢谢! java代码通过io流怎么读取MySQL数据库生成jsp文件 解决方案 IO读取数据库?!你确定? 最次也得是jdbc吧?要有大神实现我也涨涨姿势.. 或者jdbc读到内存再写成文件,再用IO读到内存写成jsp? 解决方案二: io流读取文件数据,数据库都是sql语句获取的,你这问法不懂, 解决方案三: 回复a877536298: <% String url = "jdbc:mysql://localho

jsp连接mysql数据库实现登录功能求代码及讲解

问题描述 jsp连接mysql数据库实现登录功能求代码及讲解 jsp连接mysql数据库实现登录功能求代码及讲解,新手小白求指导 解决方案 参考JSP连接mysql,实现登录界面代码和注释简单明了,一看就明白了 解决方案二: 代码呢 代码都没杂讲解 解决方案三: 楼上说的是JSP小脚本程序实现 可是一般的开发中是不会出现这种情况的 解决方案四: http://www.cnblogs.com/cysolo/archive/2013/05/06/3063738.html 此类问题,你需要先问goog

mysql 5.7.14 安装配置代码分享_Mysql

本文记录了mysql 5.7.14 安装配置代码,具体内容如下 OS: CentOS 6.6   DB: Mysql 5.7.14   1. 下载mysql   cd /tools   wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz  2.创建MySQL二进制解压文件的目录  mkdir -p /opt/mysql [root@zw-test-db mysql]

memcached 和 mysql 主从环境下php开发代码详解_php技巧

复制代码 代码如下: <?php $memcached = array( //用memcached 的 多 进程模拟 多台memcached 服务器 cn en 为 内存服务器名 'cn'=>array('192.168.254.144',11211), 'en'=>array('192.168.254.144',11212) ); $mysql = array( // mysql 的主从 我的环境是 : xp 主 linux 从 mysql 5 php5 'master'=>ar

mysql定时自动备份数据库脚本代码(linux/windows)

操作步骤: 方法一 1.安装p7zip:由于源里面没有此包,直接下载源码安装. 地址:http://p7zip.sourceforge.net/  代码如下 复制代码 wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2 tar xvf p7zip_9.20.1_src_all.tar.bz2 cd p7zip_9.20.1_src_all make && mak

mysql命令-常用sql语句命令代码

mysql命令-常用sql语句命令代码 使用G按行垂直显示结果 如果一行很长,需要这行显示的话,看起结果来就非常的难受.在SQL语句或者命令后使用G而不是分号结尾,可以将每一行的值垂直输出.这个可能也是大家对于MySQL最熟悉的区别于其他数据库工具的一个特性了. mysql> select * from db_archivelogG *************************** 1. row ***************************         id: 1  chec

web前端-前辈,请问下面的代码怎么解释?

问题描述 前辈,请问下面的代码怎么解释? 前辈 请问下面的代码怎么解释? 原地址http://www.w3school.com.cn/tiy/t.asp?f=jquery_parent <!DOCTYPE html> <html> <head> <style> .ancestors * { display: block; border: 2px solid lightgrey; color: lightgrey; padding: 5px; margin: