php连接数据库的有关问题
程序员文章站
2022-06-02 16:51:38
...
php连接数据库的问题
$link=mysql_connect("localhost","root","906200");
mysql_select_db("manage");
$sql="select * from commodity where commodity_name=".$name;/////////报错说这句不对!!!????
$result=mysql_query($sql)or die(mysql_error());
$num = mysql_num_rows($result);
echo $num;
if($num>0){
while($rs=mysql_fetch_object($result))
{
$c_id=$rs->commodity_id;
$c_name=$rs->commodity_name;
$c_kind=$rs->commodity_kind;
$c_price=$rs->commodity_buyprice;
echo "
". $c_id."
".$c_name."
".$c_kind."
". $c_price."
";
}
mysql_close();
}
已经验证前一网页把值成功传入$name,报错说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 ''select * from commodity where commodity_name='饼干' at line 1
这是为什么嘞。。。。。。(表名是commodity)
------解决方案--------------------
$sql="select * from commodity where commodity_name='$name'";
------解决方案--------------------
查找/更新/插入的字段如果是 varchar,char,text等类型 需要使用引号将内容括起来.
------解决方案--------------------
贴出出错时的 $sql
big5_chinese_ci ???
你的 $name 是什么编码的?
------解决方案--------------------
=两边的编码不一致一个是latin1_swedish_ci 一个是big5_chinese_ci
注意统一编码
------解决方案--------------------
在你连接数据库时加上:mysql_query(“set names gbk”);
------解决方案--------------------
utf8_general_ci
然后你的php,html文件都保存为UTF-8格式。就不会再有乱码的困扰了
------解决方案--------------------
说的是,一个个改为utf8_general_ci,这是最通用的
注意:对于int型变量不用改
主要改三点,
一是数据库类型有一个地方
二是表属性有一个地方
三是每个字段非int型都有一个地方
连接数据库后
mysql_query("set NAMES utf-8");
以后所有的中文操作都不用你再担心编码问题出现
(多注意chatset=utf-8;或是php页面属性dw改为utf-8)
------解决方案--------------------
windows环境的话就全用gbk,linux环境就全用utf8,包括html的http-equiv,数据库编码,php文件编码(与系统locale相同)。
------解决方案--------------------
统一编码
首先,确定你的文件的字符编码,第二,确定你数据库连接时输入输出的编码,第三,确定你数据库,表,字段的字符编码。这些药全部一致才行
最好都用UTF-8。我一般用的是utf8_general_ci
$link=mysql_connect("localhost","root","906200");
mysql_select_db("manage");
$sql="select * from commodity where commodity_name=".$name;/////////报错说这句不对!!!????
$result=mysql_query($sql)or die(mysql_error());
$num = mysql_num_rows($result);
echo $num;
if($num>0){
while($rs=mysql_fetch_object($result))
{
$c_id=$rs->commodity_id;
$c_name=$rs->commodity_name;
$c_kind=$rs->commodity_kind;
$c_price=$rs->commodity_buyprice;
echo "
}
mysql_close();
}
已经验证前一网页把值成功传入$name,报错说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 ''select * from commodity where commodity_name='饼干' at line 1
这是为什么嘞。。。。。。(表名是commodity)
------解决方案--------------------
$sql="select * from commodity where commodity_name='$name'";
------解决方案--------------------
查找/更新/插入的字段如果是 varchar,char,text等类型 需要使用引号将内容括起来.
------解决方案--------------------
贴出出错时的 $sql
big5_chinese_ci ???
你的 $name 是什么编码的?
------解决方案--------------------
=两边的编码不一致一个是latin1_swedish_ci 一个是big5_chinese_ci
注意统一编码
------解决方案--------------------
在你连接数据库时加上:mysql_query(“set names gbk”);
------解决方案--------------------
utf8_general_ci
然后你的php,html文件都保存为UTF-8格式。就不会再有乱码的困扰了
------解决方案--------------------
说的是,一个个改为utf8_general_ci,这是最通用的
注意:对于int型变量不用改
主要改三点,
一是数据库类型有一个地方
二是表属性有一个地方
三是每个字段非int型都有一个地方
连接数据库后
mysql_query("set NAMES utf-8");
以后所有的中文操作都不用你再担心编码问题出现
(多注意chatset=utf-8;或是php页面属性dw改为utf-8)
------解决方案--------------------
windows环境的话就全用gbk,linux环境就全用utf8,包括html的http-equiv,数据库编码,php文件编码(与系统locale相同)。
------解决方案--------------------
统一编码
首先,确定你的文件的字符编码,第二,确定你数据库连接时输入输出的编码,第三,确定你数据库,表,字段的字符编码。这些药全部一致才行
最好都用UTF-8。我一般用的是utf8_general_ci
相关文章
相关视频
- 教你使用PHP数据库迁移工具“Phinx”
- 详解win10下PHP的安装配置(以php5.6为...
- php Swoole实现毫秒定时计划任务(详解)
- PHP 采集程序原理分析篇_php技巧
- php连接数据库的有关问题
- .E[attr~="value"]选择器
- E[attr^="value"]选择器
- E[attr$="value"]选择器
- E[attr*="value"]选择器
- E[attr|="value"]选择器
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
- 最新文章
- 热门排行
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论