gpt4 book ai didi

php - 如何将 varchar 转换为tinyint

转载 作者:行者123 更新时间:2023-11-30 00:58:48 26 4
gpt4 key购买 nike

我正在尝试从 php 将表插入 sql server,但我不明白如何从查询中修复它。当我尝试运行查询时,出现错误,通知我无法转换数据类型。

像这样:

Conversion failed when converting the varchar value '1 CASE When 1 = 1 Then Default ELSE Piority + CONVERT (Varchar(5),1) END' to data type tinyint.

这是我所有的 php 代码。

<?
include "new.php";

$ID_Person = $_POST['IDPerson'];
$Number_Phone_Person = $_POST['NumberPhonePerson'];
$Piority_Phone_Person = $_POST['PiorityPhonePerson'];
$Default = 'Default';
$Piority = 'Piority';



$response = array();

if (isset($ID_Person) &&
isset($Number_Phone_Person) &&
isset($Piority_Phone_Person)
)
{

$query = "INSERT INTO T_Person_Phone
(
ID_Person,
Number_Phone_Person,
Piority_Phone_Person

)
VALUES
(
'$ID_Person',
'$Number_Phone_Person',
'$Piority_Phone_Person
CASE When $Piority_Phone_Person = 1 Then $Default
ELSE $Piority + CONVERT (Varchar(5),$Piority_Phone_Person) END');";

$hasil = sqlsrv_query($conn,$query,$response);
if($hasil)
{

$response["success"] = 1;
$response["message"] = "User successfully created.";

} else
{
$response["success"] = 0;
$response["message"] = "Eksekusi error.";
die( print_r( sqlsrv_errors(), true));
}

} else
{
$response["success"] = 0;
$response["message"] = "Data gagal disimpan.";
}
// echoing JSON response
echo json_encode($response);
?>

有办法解决这个问题吗?

最佳答案

首先也是最重要的,您用引号封装 SQL 语句,因此它按字面解释整个字符串。也就是说,MySQL 并不认为您需要一个 case 开关,而是实际上需要一个包含这些单词的字符串。将字符串插入到tinyint列中是无效的,因此会出现错误。

所以改变这个:

'$Number_Phone_Person', 
'$Piority_Phone_Person
CASE When $Piority_Phone_Person = 1 Then $Default
ELSE $Piority + CONVERT (Varchar(5),$Piority_Phone_Person) END')

对此:

'$Number_Phone_Person', 
CASE WHEN $Piority_Phone_Person = 1 THEN $Default
ELSE $Piority + CONVERT (Varchar(5),$Piority_Phone_Person) END)

请注意,我不完全确定您的整个 $Piority + CONVERT (Varchar(5),$Piority_Phone_Person) 会发生什么 - 该语句可能同样无效。

关于php - 如何将 varchar 转换为tinyint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com