[英]MySQL query fails silently in php
这是我为网站编写的PHP代码。 当我执行此操作时,查询不会执行,也不会显示任何错误。 我还检查了要插入的值的数据类型。 数据库用户名和密码以及所有凭据均正确。 可能是什么问题呢?
<?php
$password ='abcdef';
$host="localhost"; // Host name
$username="futureti_dsatya"; // Mysql username
$password="D2e3e4v1i"; // Mysql password
$db_name="futureti_db"; // Database name
$tbl_name="users"; // Table name
// Connect to server and select databse.
$con = mysqli_connect($host, $username, $password,$db_name);
if(!$con)
{
die('Could not connect: '. mysql_error());
}
else
{
$res = mysqli_query($con,"insert into users values(55555623,'saran1','satya_saran',$password)");
if($res){
print("i am ok");
}
else{
print("bad");
}
}
?>
您没有得到任何错误,因为您正在使用mysql。 不是mysqli。
您的代码混乱了,只包装了密码。 我想连接没有连接。
替换为:
die('Could not connect: '. mysql_error());
至
die('Could not connect: '. mysqli_error()); //to see the error
如下所示将$pass
括在引号中(55555623,'saran1','satya_saran','$pass')
,并带有有关“ $password
”的说明,并更改mysql_error());
到mysqli_error());
这两个函数不能混合使用,这就是为什么您没有得到正确的错误消息来显示的原因。
如前所述,您使用$password
两次; 将其中一个变量更改为其他变量。
您当前正在做的是覆盖$password
变量。
我假设您想在数据库中输入abcdef
。 如果是这样,请改为执行以下操作:
<?php
$pass ='abcdef';
$host = "localhost"; // Host name
$username = "futureti_dsatya"; // Mysql username
$password = "D2e3e4v1i"; // Mysql password
$db_name = "futureti_db"; // Database name
$tbl_name = "users"; // Table name
// Connect to server and select databse.
$con = mysqli_connect($host, $username, $password,$db_name);
if ( !$con ) {
die('Could not connect: '. mysqli_error());
} else {
$res = mysqli_query($con, "insert into users values (55555623,'saran1','satya_saran','$pass' )");
if( $res ) {
print("i am ok");
} else {
print("bad");
}
}
?>
另外,也不建议将数据插入表中而不告知要使用的列。
使用以下效果:
($con, "insert into users (column1, column2, column3, column4) values (55555623,'saran1','satya_saran','$pass' )
旁注:如果第一个值的列不是(int)
,则也需要将其用引号引起来。
同样,如果您的第一列是AUTO_INCREMENT
,则需要从列的类型中删除AUTO_INCREMENT
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.