我正在使用数据库将近一年,这次当我尝试使用mysql和php时它无法工作,我尝试使用mysqli_error()函数,这也不起作用 我创建了数据库,这是一个非常简单的表,有2列,它不起作用,我想知道我能做些什么,这是我试过的
<?php
$cnn=mysqli_connect("localhost","root","password");
if(!$cnn){
die("data base connection failed :" . mysqli_error());
}
//select a kimai fekr db
$db_select=mysqli_select_db($cnn,"testi");
if (!$db_select){
die("database selection failed:" . " " . mysqli_error());
}
?>
<?php
$uname="morteza";
$id=1;
$query="insert into test ('id','uname') values ($id,'{$uname}')";
$result=mysqli_query($cnn,$query);
if($result){
echo "<p>user added</p>";
}
else{
echo "<p>user not added </p>" . mysqli_error('$cnn');}
mysqli_close($cnn);
?>
答案 0 :(得分:4)
这些不是正确的column identifiers
('id','uname')
^ ^ ^ ^
要么删除它们
(id,uname)
或使用反引号
(`id`,`uname`)
在打开<?php
标记后立即将错误报告添加到文件顶部
error_reporting(E_ALL); ini_set('display_errors', 1);
会发出错误信号
以及or die(mysqli_error($cnn))
到mysqli_query()
另外,您目前的代码向SQL injection开放。使用prepared statements或PDO with prepared statements,他们更安全。
答案 1 :(得分:3)
不要在列标识符周围使用单引号。使用滴答或什么都不做:
$query="insert into test (id,uname) values ($id,'{$uname}')";
或
$query="insert into test (`id`,`uname`) values ($id,'{$uname}')";
答案 2 :(得分:0)
你能试试吗
$query="insert into test (`id`,`uname`) values ('$id','{$uname}')";